“ new Date()”解析取决于格式

时间:2019-05-17 22:37:35

标签: javascript date

我很惊讶地意识到

new Date('2015-02-15')new Date('02-15-2015')返回不同的结果。一个解析为UTC时间,另一个解析为当地时间。时区时区包也是如此。

是否有一种方法可以使用矩或内置日期以标准方式解析这些日期?

1 个答案:

答案 0 :(得分:2)

将期望的日期字符串格式传递给moment.js似乎返回相同的本地时区

// Sun Feb 15 2015 00:00:00 GMT-0800
moment('2015-02-15', 'YYYY-MM-DD').toString()
// Sun Feb 15 2015 00:00:00 GMT-0800
moment('02-15-2015', 'MM-DD-YYYY').toString()

例如,您可以使用moment-timezone包将时间标准化为UTC

// Sun Feb 15 2015 08:00:00 GMT+0000
moment('2015-02-15', 'YYYY-MM-DD').utc().toString()
// Sun Feb 15 2015 08:00:00 GMT+0000
moment('02-15-2015', 'MM-DD-YYYY').utc()toString()

尝试一下:https://jsfiddle.net/wyopm3xu/