【发布时间】:2016-03-21 18:14:10
【问题描述】:
我正在寻找一种日期格式(只有年、月和日,没有时间组件),当传递给JavaScript 中的 Date() 构造函数。
(3-letter English month abbreviation) (2-digit date) (4-digit year) 格式似乎有效。当我在我的英语系统、Chrome 中使用 new Date('Apr 01 2015') 并且我的机器位于东部时区时,我会返回 Wed Apr 01 2015 00:00:00 GMT-0400 (Eastern Daylight Time),这正是我想要的。
但是,我不确定这种(3-letter English month abbreviation) (2-digit date) (4-digit year) 格式是否保证以相同的方式解释,而不管浏览器和浏览器/操作系统区域设置/语言如何。
这种格式在不同(相当现代的)浏览器和语言环境中的工作方式是否相同?如果不是,那么还有其他格式可以使用吗?
请注意,ISO-8601 没有回答这个问题。 ISO-8601 仅日期字符串被解释为 UTC,而不是本地时间,因此 new Date('2015-04-01') 被解释为 Tue Mar 31 2015 20:00:00 GMT-0400 (Eastern Daylight Time),即 4 月 1 日变成了 3 月 31 日,这不是我想要的。
【问题讨论】:
-
"ISO-8601 纯日期字符串被解释为 UTC"。那是在 ES5 中,ECMAScript 2015 将其更改为“本地”。
标签: javascript date datetime cross-browser timezone