gpt4 book ai didi

javascript - 返回不一致结果的日期(取决于是否存在前导零)

转载 作者:行者123 更新时间:2023-11-28 00:40:20 25 4
gpt4 key购买 nike

> new Date('2015-1-1')
Thu Jan 01 2015 00:00:00 GMT-0500 (EST)
> new Date('2015-01-1')
Thu Jan 01 2015 00:00:00 GMT-0500 (EST)
> new Date('2015-1-01')
Thu Jan 01 2015 00:00:00 GMT-0500 (EST)

// Yet...
> new Date('2015-01-01')
Wed Dec 31 2014 19:00:00 GMT-0500 (EST)

// Similarly:
> new Date('2015-1-10')
Sat Jan 10 2015 00:00:00 GMT-0500 (EST)
> new Date('2015-01-10')
Fri Jan 09 2015 19:00:00 GMT-0500 (EST)

无法弄清楚为什么会发生这种情况(Chrome 39)。与八进制解析有关吗?

Firefox 只接受 new Date('2015-01-10'),并返回我期望的内容:Date 2015-01-10T00:00:00.000Z

最佳答案

在相关问题中找到答案; Chrome 似乎将 YYYY-MM-DD 格式解析为 UTC 时间,然后将其转换为本地时区。因此,UTC 格式的 2015-01-01 00:00:00 是美国东部时间 (EST) 的 12 月 31 日。

参见Inconsistencies when creating new date objects :

It looks like the form '1979-04-05' is interpreted as a UTC date (and then that UTC date is converted to local time when displayed).

显然,一个可能的跨浏览器解决方案是将破折号替换为斜杠以强制使用本地时间:

new Date('2015-01-10'.replace(/-/g, '/'))

关于javascript - 返回不一致结果的日期(取决于是否存在前导零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28019693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com