var date = new Date();
do {
var sel = date.toString();
document.write(sel + "<br>");
date.setDate(date.getDate()+1);
} while(date.getDate() != 2 && date.getMonth() != 2)
为什么这会在1月1日停止......?
答案 0 :(得分:3)
因为在1月2日,第一个条件返回false并且执行停止。我假设您希望脚本一直持续到2月2日,在这种情况下,您的条件应如下所示:
} while(date.getDate() != 2 || date.getMonth() != 1)
// Stops when day is 2 and month is 1 (February)
或者:
} while(!(date.getDate() == 2 && date.getMonth() != 1))
两者意味着同样的事情。请注意,月份为零索引,因此二月份为1.这会产生如下输出:
...
Fri Jan 28 2011 14:57:00 GMT+0200
Sat Jan 29 2011 14:57:00 GMT+0200
Sun Jan 30 2011 14:57:00 GMT+0200
Mon Jan 31 2011 14:57:00 GMT+0200
Tue Feb 01 2011 14:57:00 GMT+0200
答案 1 :(得分:2)
1月1日有getDate == 2.
修改:如果您希望这样,请转到2.02查看http://jsfiddle.net/PYXeu/1/中的代码
答案 2 :(得分:1)
因为在第二次迭代中.getDate
是2.而while不能执行。如果您希望它在完成2后停止,则需要将其增加到3。
如果您在代码中更明确地说明您要添加到日期中的内容,也不会有任何损失。
答案 3 :(得分:0)
当您点击3月或2月时,您的循环将不再执行。这是因为月份从0开始,所以1月是0,12月是11。
答案 4 :(得分:0)
在javascript中,月份从1月份的索引0开始。您需要根据需要相应地调整循环。
答案 5 :(得分:0)
我相信月份从0开始,所以在1月1日date.getMonth()== 0,其中!= 2.