我试图在一个月内每天迭代,但我的for循环被卡住(进入无限模式):
var today = new Date();
var numberOfDaysInMonth = new Date( today.getFullYear(), lastMonth, 0 ).getDate();
...
for ( var date = new Date( today.getFullYear(), lastMonth, 1 ); date.getDate() <= numberOfDaysInMonth; date.setDate( date.getDate()+1 ) ) {
...
for循环参数的所有单独部分都按预期工作。如果我用“&lt;”替换“&lt; =”在这种情况下,循环也会运行,但是过早停止。
有人知道是什么可能将这个循环推向无穷大吗?我很无能......
答案 0 :(得分:3)
日期对象不能超过该月的最后一天setDate
。它始终小于或等于最大getDate()
值。
答案 1 :(得分:1)
date.setDate( date.getDate()+1 )
当调用date.setDate(31 + 1)时,日期重置为0,月份提前1,因为这是“下一个”日期。
相反,循环如下:
var begin = new Date("4 februari 2014");
var end = new Date("4 march 2014");
for (;begin < end; begin.setDate(begin.getDate()+1)) {
console.log(begin);
}
这将显示4月2日到3月4日之间的日期。