gpt4 book ai didi

Javascript Date - getDate 在不同的年份给出不同的结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:49 25 4
gpt4 key购买 nike

我有两个日期字符串 - 相同的月份、日期和时间,但年份不同(2017 年、1970 年)。当我将它们转换为 Date 对象然后使用 getDate() 函数时,我得到了不同的日子。

var d1 = '1970-05-11T22:00:00.000Z';
var d2 = '2017-05-11T22:00:00.000Z';
console.log(new Date(d1), new Date(d1).getDate()); // day 11
console.log(new Date(d2), new Date(d2).getDate()); // day 12

为什么会这样,我该如何控制这种行为?

最佳答案

您的个人资料表明您位于捷克共和国。 getDate 返回本地时间的值。 2017年according to timeanddate.com , 观察到夏令时并于 5 月生效。然而,it also says that 1970 年期间:

Daylight Saving Time (DST) Not Observed in Year 1970

Prague observed Central European Time (CET) all year.

DST was not in use in 1970.

UTC 时间的 22:00 足够接近午夜,getDate 可以返回您所在时区的第二天,因为它是 2017 年的第 12 个本地时间,但在 1970 年仍然是第 11 个.

您可以改用 getUTCDate 来解决这个问题,它会为两者返回 11:

var d1 = '1970-05-11T22:00:00.000Z';
var d2 = '2017-05-11T22:00:00.000Z';
console.log(new Date(d1), new Date(d1).getUTCDate()); // day 11
console.log(new Date(d2), new Date(d2).getUTCDate()); // day 11

关于Javascript Date - getDate 在不同的年份给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46828415/

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