将字符串转换为特定的时间格式(字符串)JavaScript
Converting string to specific time format (string) JavaScript
我需要将html数据标记中的字符串转换为JavaScript中的特定时间格式。
var time = "August 01, 2016 01:30"
需要成为
"01 August 2016 01:30:00"
以下代码可以做到这一点:
var time = "August 01, 2016 01:30"
var time_array = time.split(",")
var month = time_array[0].split(' ')[0]
var day = time_array[0].split(' ')[1]
var year = time_array[1].split(' ')[1]
var time = time_array[1].split(' ')[2]+ ":00"
var result = day + " " + month + " " + year + " " + time
但我想知道是否有更高效、更快的方法来做到这一点?
假设您不需要检查输入字符串是否描述了有效的日期和时间,您可以简单地使用.replace()
方法:
var time = "August 01, 2016 01:30";
time = time.replace(/([a-z]+) ('d{2}), ('d{4} 'd{2}:'d{2})/i, "$2 $1 $3:00");
console.log(time);
如果您不想包含整个库,并且仍然希望使用实际日期,那么自己解析日期并不难
var time = "August 01, 2016 01:30";
var months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
var parts = time.split(/['s,:]/);
var date = new Date(parts[3], months.indexOf(parts[0]), parts[1], parts[4], parts[5]);
现在你有了一个日期对象,你可以输出任何你想要的东西,你可以使用月份数组来获取月份等。
function pad(x) { return x < 10 ? '0' + x : x}
var new_date = [
pad(date.getDate()),
months[date.getMonth()],
date.getFullYear(),
pad(date.getHours()) + ':' +
pad(date.getMinutes()) + ':' +
pad(date.getSeconds())
];
var parsed = new_date.join(' ');
var time = "August 01, 2016 01:30";
var months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
var parts = time.split(/['s,:]/);
var date = new Date(parts[3], months.indexOf(parts[0]), parts[1], parts[4], parts[5]);
function pad(x) { return x < 10 ? '0' + x : x}
var new_date = [
pad(date.getDate()),
months[date.getMonth()],
date.getFullYear(),
pad(date.getHours()) + ': ' +
pad(date.getMinutes()) + ': ' +
pad(date.getSeconds())
];
var parsed = new_date.join(' ');
document.body.innerHTML = parsed;
根据@andrey etumyan的建议,您应该使用moment.js
var time = "August 01, 2016 01:30"
var d = moment(time, "MMMM DD, YYYY hh:mm")
console.log(d.format("DD MMMM YYYY hh:mm:ss"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
使用momentjs,您可以获得以下代码:
var time = "August 01, 2016 01:30";
time = moment(time, 'MMMM DD, YYYY HH:mm').format('DD MMMM YYYY HH:mm:ss');
console.log(time)//"01 August 2016 01:30:00"
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
您可以轻松做到这一点,而无需任何momentjs或手动解析字符串。Date会很好地解析它。
var date = new Date("August 01, 2016 01:30");
var months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
console.log(date.getDate() + ' ' + months[date.getMonth()] + ' ' +
date.getFullYear() + ' ' + date.getHours() + ':' + date.getMinutes() );
相关文章:
- 由于布尔值的变化,Django视图中的字符串格式不正确
- JSON字符串格式错误
- Mysql日期时间字符串格式为angularjs中的可读日期
- 挖空 HTML 绑定和字符串格式的 HTML 长度
- 通过javascript将带有日期的字符串格式化为另一种格式
- 将GeoJson字符串格式设置为虚线
- 将JSON转换为特定的字符串格式
- 通过 jQuery 验证日期字符串格式的最佳方法
- 如何以 html 文本的字符串格式放置变量值
- 如何将javascript字符串格式转换为日期
- 使用 javascript 将 ISO 8601 日期字符串格式化为凌晨 0:00
- 如何将 base64 编码的字符串格式化为 x 个字符的可 jslinable 行
- NodeJS 字符串格式,如 Python
- 将字符串格式化为时间格式,如 hh:mm
- 如何获取 g 元素的字符串格式的 svg
- 读取具有“'”的 JSON 字符串(格式不正确?
- 在 JavaScript/Lodash 中将字符串格式化为电话号码
- 如何使用 Angular “数字”过滤器键入时在输入字段中设置带有千和小数分隔符的字符串格式
- JSON 字符串格式
- 是Javascript的一种特殊字符串格式