gpt4 book ai didi

javascript - while 循环中从日期到日期的计数

转载 作者:行者123 更新时间:2023-12-03 03:26:54 24 4
gpt4 key购买 nike

我想使用 while 循环从一个日期计数到另一个日期,并计算日期 + 1 直到到达最终日期。

举个例子:

var start = new Date(2011, 08, 15);
var end = new Date(2017, 09, 28);
var expired = false;

while (!expired) {
// very first iteration would count day + 1 so it will be 2011-08-16
// and so on till 2017-09-28
// check if end date and set expired to true, finished while loop
}

alert("Finished!");

我不知道该怎么做(其他答案没有帮助)。有什么想法吗?

最佳答案

您可以使用.getDate() .setDate() 方法,在 start.setDate(start.getDate() + 1) 中将日期增加一天,这就是您的代码:

while (!expired) {
start.setDate(start.getDate() + 1);
// and so on till 2017-09-28
if(dateDiffInDays(start, end) == 0) {
expired = true;
}
count++;
}
console.log(count);
alert("Finished!");

演示:

// A useful function to get dates diff in days gotten from: https://stackoverflow.com/a/15289883/3669624
function dateDiffInDays(a, b) {
var _MS_PER_DAY = 1000 * 60 * 60 * 24;
var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());
return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

var start = new Date(2011, 08, 15);
var end = new Date(2017, 09, 28);
var expired = false;

var count =0;

while (!expired) {
start.setDate(start.getDate() + 1);
// and so on till 2017-09-28
if(dateDiffInDays(start, end) == 0) {
expired = true;
}
count++;
}
console.log(count);
alert("Finished!");

开始日期将在每次迭代中增加一天,直到达到结束日期的同一天,最后在结束count 变量将保存这两天之间的天数。

关于javascript - while 循环中从日期到日期的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46282561/

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