gpt4 book ai didi

JavaScript 日期错误 2014 年 2 月

转载 作者:行者123 更新时间:2023-12-01 15:11:55 24 4
gpt4 key购买 nike

所以我有这个 JS 代码:

var d1 = new Date();
d1.setFullYear(2014);
d1.setMonth(1);
d1.setDate(1);

应该是 Feb-01-2014 吧?只是它不是...它返回 Mar-01-2014(实际上,完整值是“Sat Mar 01 2014 20:54:29 GMT+0100(浪漫标准时间)”)。我勒个去?任何其他日期值都会发生同样的事情。

但是,如果我使用这段代码,它工作正常:

var d1 = new Date(2014, 1, 1, 0, 0, 0, 0);

结果是:Sat Feb 01 2014 00:00:00 GMT+0100(浪漫标准时间)

有什么想法吗?

最佳答案

这是正在发生的事情,一行一行:

您使用今天的日期创建一个新的日期对象。

var d1 = new Date(); // d1 = 2014-04-30

然后您将年份设置为 2014 年,因为它已经是 2014 年了,所以实际上什么也没有发生。

d1.setFullYear(2014); // d1 = 2014-04-30

这是棘手的部分,因为现在您将月份更改为二月。但这会使日期 2 月 30 日 (2014-02-30) 不存在,因此 JavaScript 将尝试找到最接近的有效日期,即 3 月 1 日 (2014 -03-01).

d1.setMonth(1); // d1 = 2014-02-30 is not valid so JS makes it 2014-03-01

然后您将日期设置为该月的第一天,现在已经是第一天,所以这里也没有发生任何事情。

d1.setDate(1) // d1 = 2014-03-01

关于JavaScript 日期错误 2014 年 2 月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23395934/

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