使用date-functions.js库(例如,在日期选择器jQuery插件中使用)可以这样做:
Date.parseDate('2018-03-10 12:12', 'Y-m-d H:i')给予:
Sat Mar 10 2018 12:12:00 GMT+0100 (Paris, Madrid)如何以Unix时间戳或GMT / UTC时间代替得到结果?
发布于 2018-03-14 13:20:07
像'2018-03-10 12:12‘这样的字符串通常会被解析为本地的,因为没有时区偏移。它也不符合ISO 8601,所以使用内置解析器会在不同的浏览器中产生不同的结果。
虽然可以使用库,但要将其解析为UTC并获取时间值,只需2行代码:
function toUTCTimeValue(s) {
var b = s.split(/\D/);
return Date.UTC(b[0],b[1]-1,b[2],b[3],b[4]);
}
// As time value
console.log(toUTCTimeValue('2018-03-10 12:12'));
// Convert to Date object and print as timestamp
console.log(new Date(toUTCTimeValue('2018-03-10 12:12')).toISOString());
发布于 2018-03-14 12:17:52
使用MomentJS代替。您可以确切地指定您正在解析的字符串的格式。然后,MomentJS可以为您提供底层的Date对象,unix时间戳,以及转换为UTC。
var d = moment('2018-03-10 12:12', 'YYYY-MM-DD HH:mm');
console.log(d.toDate());
console.log(d.unix());
console.log(d.utc().toDate());<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>
当然,您也可以将日期解析为UTC,而不是将其视为本地时间。
moment.utc('2018-03-10 12:12', 'YYYY-MM-DD HH:mm');注意到,当我在英国和格林尼治标准时间和UTC实际上是一样的时候,对我来说测试UTC有点困难。
发布于 2018-03-14 12:28:20
var date = new Date('2018-03-10 12:12'.replace(' ', 'T'));
// Unix
console.log(Math.floor(date.getTime() / 1000));
// UTC
console.log(date.toUTCString());
一如既往,请查看MDN:对象/日期上的文档。
https://stackoverflow.com/questions/49276225
复制相似问题