【问题标题】:javascript new Date() or moment.js parse date wrongjavascript new Date() 或 moment.js 解析日期错误
【发布时间】:2025-12-02 10:25:01
【问题描述】:

我有一个来自服务器的 DateTime 值,格式如下:

2015-08-16T01:29:00.000Z  

但是当我这样做时

new Date('2015-08-16T01:29:00.000Z')

结果是这样的:

Sun Aug 16 2015 04:29:00 GMT+0300 (FLE Daylight Time)

请注意小时是错误的,而不是01:29 AM is 04:29 AM

moment.js 也一样,时间不对。

我该如何解决这个问题?

【问题讨论】:

    标签: javascript datetime momentjs


    【解决方案1】:

    这是同一时间——服务器将它作为 UTC 提供给您(因此最后是 Z),然后 Javascript 会在浏览器的本地时区 FLE 夏令时有用地显示它。鉴于这两个时间都清楚地说明了它们所在的时区,严格来说没有任何问题。

    做什么取决于你到底想要什么。通过做

    moment.utc('2015-08-16T01:29:00.000Z');
    

    您将 moment.js 置于 UTC 模式,以 UTC 显示所有内容(如果我正确理解文档的话)。

    【讨论】:

    • 漂亮!谢谢!