gpt4 book ai didi

Javascript 新的 Date(dateString) 处理

转载 作者:数据小太阳 更新时间:2023-10-29 04:12:37 26 4
gpt4 key购买 nike

有人可以解释为什么格式化相同的 dateString 会得到不同的日期吗?

> new Date("04/08/1984")
<· Sun Apr 08 1984 00:00:00 GMT-0600 (Mountain Daylight Time)
> new Date("1984-04-08")
<· Sat Apr 07 1984 18:00:00 GMT-0600 (Mountain Daylight Time)

最佳答案

当您创建一个新的Date 对象并将dateString 参数传递给构造函数时,它会使用 Date.parse() 进行解析。 方法。现在,引用 MDN 文档(强调我的):

Differences in assumed time zone

Given a date string of "March 7, 2014" (or "03/07/2014"), parse() assumes a local time zone, but given an ISO format such as "2014-03-07" it will assume a time zone of UTC. Therefore Date objects produced using those strings will represent different moments in time unless the system is set with a local time zone of UTC.

因此,由于您给出的是 ISO 格式的第二个字符串,并且您的本地时区是 UTC+6,您得到的日期比您晚了 6 小时,因为它是按 UTC 计算的+0。事实上:

Apr 07 1984 18:00:00 = Apr 08 1984 00:00:00 - 06:00:00

谜底揭晓!

关于Javascript 新的 Date(dateString) 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29660370/

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