gpt4 book ai didi

使用 setMonth 时的 Javascript 日期问题

转载 作者:行者123 更新时间:2023-11-29 18:09:54 26 4
gpt4 key购买 nike

在开发 firefox 附加组件时,以下会给出不同的结果?

var out = document.getElementById('out');

out.textContent += new Date(2015, 1, 6, 16, 0, 0, 0) + '\n'; // -> Date "2015-02-06T15:00:00.000Z" correct, months are zero-based
var dt = new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(2015);
dt.setMonth(1);
dt.setDate(6);
dt.setHours(16);
out.textContent += dt + '\n'; // -> Date "2015-03-06T15:00:00.000Z" ??
<pre id="out"></pre>

问题是 setMonth(1) 在第二种情况下设置了三月。这发生在任意日期,其他日期对这两种方法都适用。知道为什么吗?

var out = document.getElementById('out');

out.textContent += new Date(2015, 0, 30, 16, 0, 0, 0) + '\n'; // -> 2015-01-30T15:00:00.000Z" months are zero-based
var dt = new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(2015);
dt.setMonth(0);
dt.setDate(30);
dt.setHours(16);
out.textContent += dt + '\n'; // -> 2015-01-30T15:00:00.000Z
<pre id="out"></pre>

最佳答案

这是因为包装,与 Firefox 或 Firefox 插件无关。

var dt = new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(2015);
dt.setMonth(1);
dt.setDate(6);
dt.setHours(16);

最初,dt 是 1899 年 12 月 31 日。

现在,我们将其设置为 2015 年:2015 年 12 月 31 日

这个月变成了二月,但是因为二月只有 28 天,所以它绕到三月:2015 年 3 月 3 日

然后,当然,日期是第六个,所以是 3 月 6 日。

关于使用 setMonth 时的 Javascript 日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28403940/

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