在javascript中迭代两个日期

时间:2014-04-08 06:27:20

标签: javascript

我是JavaScript的新手,并且在javascript中在给定范围之间迭代日期时遇到困难。 请帮我解决这个问题。 我有2个日期,一个是开始日期,另一个是结束日期。循环应该从开始日期到结束日期迭代。对于每个迭代,开始日期应该增加一天。 在此先感谢

3 个答案:

答案 0 :(得分:6)

您应该使用moment.js,然后使用

moment().add('days', 1);

整个代码看起来像这样:

let startDate = moment("2017-10-21");
let endDate = moment().add(-1, 'days');  // for yesterday
for (let date = moment(startDate); date.diff(endDate) < 0; date.add(1, 'days')) {

}

我希望我能正确理解。

答案 1 :(得分:1)

你可以使用Date.setDate()方法的技巧:它会改变月中的某一天,但是如果你尝试设置一个月外的一天的范围(1-30 / 31)它会尝试改变相应的整个日期。

var startDate = new Date(), // Current moment
    endDate = new Date(startDate.getTime() + 50*24*60*60*1000), // Current moment + 50 days
    iDate = new Date(startDate); // Date object to be used as iterator
while (iDate <= endDate) {
    console.log(iDate.toString());
    iDate.setDate(iDate.getDate() + 1); // Switch to next day
}

&#34;适用于&#34;太:

var startDate = new Date(),
endDate = new Date(startDate.getTime() + 50*24*60*60*1000);

for (var iDate = new Date(startDate); iDate < endDate; iDate.setDate(iDate.getDate() + 1)) {
    console.log(iDate.toString());
}

答案 2 :(得分:0)

   var one_day=1000*60*60*24;

    // Convert both dates to milliseconds
   var date1_ms = date1.getTime();
  var date2_ms = date2.getTime();

   enter code here

  -- Calculate the difference in milliseconds
   var difference_ms = date2_ms - date1_ms;
   var diff=Math.round(difference_ms/one_day); 

    for(var i=0;i<diff;i++)
     {
       // here your calculatiuon
     }