使用 JavaScript 遍历日期范围

2022-08-30 02:01:32

给定两个对象,其中一个小于另一个,我如何每天在日期之间循环?Date()

for(loopDate = startDate; loopDate < endDate; loopDate += 1)
{

}

这种循环会起作用吗?但是,如何向循环计数器添加一天呢?

谢谢!


答案 1

这是一种方法,方法是利用添加一天会导致日期滚动到下个月(如有必要)的方式,而不会弄乱毫秒。夏令时也不是问题。

var now = new Date();
var daysOfYear = [];
for (var d = new Date(2012, 0, 1); d <= now; d.setDate(d.getDate() + 1)) {
    daysOfYear.push(new Date(d));
}

请注意,如果要存储日期,则需要创建一个新日期(如上文中的新 Date(d)所示),否则最终每个存储的日期都是循环中 d 的最终值。


答案 2

基于汤姆·古伦的回答。

var start = new Date("02/05/2013");
var end = new Date("02/10/2013");


var loop = new Date(start);
while(loop <= end){
   alert(loop);           

   var newDate = loop.setDate(loop.getDate() + 1);
   loop = new Date(newDate);
}