gpt4 book ai didi

javascript - Firefox 中的日期值错误

转载 作者:行者123 更新时间:2023-12-02 13:44:30 25 4
gpt4 key购买 nike

浏览器中 JavaScript 日期的不同行为。

我在 Firefox 中创建了新的日期,但它返回了错误的值。

在火狐浏览器中:

new Date(2017,2,22)
Date 2017-03-21 T19:30:00.000Z

在 Chrome 中:

new Date(2017,2,22)
Wed Mar 22 2017 01:00:00 GMT+0430 (Iran Daylight Time)

如何让 Firefox 像 Chrome 一样显示日期?

最佳答案

您的问题似乎与浏览器如何应用夏令时有关。在德黑兰,从 2017 年 3 月 22 日开始,夏令时的时钟向前拨动。因此 2017-03-22 00:00:00 立即变为 2017-03-22 01:00:00。

Firefox 似乎不会在午夜时分应用夏令时,而 Chrome 则会。它似乎应用了错误的偏移量(它实际上从标准时间减去一个小时)直到 01:00:

new Date(2017,2,22,0,59); // Tue Mar 21 2017 23:59:00 GMT+0330 (IRST)
new Date(2017,2,22,1,0); // Wed Mar 22 2017 01:00:00 GMT+0430 (IRST)

并且两者使用相同的时区名称缩写。将其报告为错误。

浏览器 Date 对象存在许多此类小问题。如果您依赖于客户 Date 行为,请准备好发现它们。

编辑

看来您可以使用 Date.UTC 来解决此问题:

// One minute to midnight in Tehran, daylight saving not applied
new Date(Date.UTC(2017,2,21,20,29)); // Tue Mar 21 2017 23:59:00 GMT+0330 (IRST)
// At midnight in Tehran, daylight saving applied
new Date(Date.UTC(2017,2,21,20,30)); // Wed Mar 22 2017 01:00:00 GMT+0430 (IRST)

仍然有不正确的时区缩写,但无论如何你都不应该依赖它,其余的似乎都是正确的。

关于javascript - Firefox 中的日期值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41518403/

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