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