gpt4 book ai didi

javascript - JS - 考虑闰年计算两个日期之间的天数

转载 作者:行者123 更新时间:2023-11-29 15:25:41 25 4
gpt4 key购买 nike

我想计算两个日期之间的天数。常见问题。

例如:

var d0 = new Date("2016-02-27");
var d1 = new Date("2017-08-25");

Many people建议使用时代差异:

var res = (d1 - d0) / 1000 / 60 / 60 / 24;
// res = 545 days

但我很怀疑所以我写了一个天真的函数:

function days(d0, d1)
{
var d = new Date(d0);
var n = 0;
while(d < d1)
{
d.setDate(d.getDate() + 1);
n++;
}
return n;
}

此函数和纪元差异本质上输出相同的结果,但与我的特定示例不同。可能因为 2016 年是闰年。

res = days(d0, d1);
// res = 546 days

知道为什么吗?

最佳答案

经过测试,循环似乎停止在 2017-08-26,而不是 2017-08-25

当你打印 d0d1 的值时,结果如下:

d0: Sat Feb 27 2016 01:00:00 GMT+0100 (Central Europe Standard Time)

d1: Fri Aug 25 2017 02:00:00 GMT+0200 (Central Europe Daylight Time)

如您所见,两个日期之间有一个小时的偏移,因此当循环的索引到达 2017 年 8 月 25 日时,这个偏移仍然存在并使“低于”操作为真,它应该是假的。

确保在使用前规范化您的日期。

关于javascript - JS - 考虑闰年计算两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39344822/

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