【发布时间】:2016-04-25 05:39:58
【问题描述】:
如果我使用 new Date('2015-03-25') 创建 Date 对象,我得到的对象是 Tue Mar 24 2015 16:00:00 GMT-0800 (AKDT)。是预期的吗?
【问题讨论】:
-
取决于引擎实现的语言版本。解析
YYYY-MM-DD... 使用 ES5 时,如果未提供时区,则假定为 UTC。在 ES6 中,这改为假设用户的时区。 – 相关:Why does Date.parse give incorrect results? -
谢谢@JonathanLonowski。
-
@JonathanLonowski — 不,ECMAScript 2015 也采用 UTC(参见TC39 discussion)。但无论如何,永远不应使用 Date 构造函数或 Date.parse 解析字符串。手动操作(2 行函数可以,如果需要,也可以使用库)。
-
@RobG 是的,看起来 ES 2016 (ES7) 计划将其更改回 UTC 用于仅限日期的字符串,但这尚未发布并且仍然可以更改。目前,已发布的标准在不存在时使用当地时间,即使引擎改为遵守下一个草案。
标签: javascript date iso