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日停止..?做...提前2個月停止?
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日停止..?做...提前2個月停止?
因爲在第二次迭代中.getDate
是2. while不能執行。如果您希望在完成後停止,則需要將其增加到3. 2
如果您在代碼中更加明確地指出要添加到日期中的內容,它也不會受到影響。
當你點擊3月或2日之後,你的循環將不再執行。這是因爲月份從0開始,因此1月份爲0,12月份爲11月份。
在javascript中,月份從1月份的索引0開始。您將需要根據您的需要相應調整您的循環。
我相信幾個月從0開始,所以在一月date.getMonth()== 0,1日起,!= 2
所以它不應該停止在1月1日...條件是真的。 – 2010-12-08 12:55:30
就這樣!我一定誤解了這個問題。謝謝。 – 2010-12-08 12:58:33
因爲在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
當得到月爲0爲什麼就不能執行,如果GETDATE是2 ? – Mantar 2010-12-08 13:04:28
由於該條件評估爲錯誤,而該條件從此時開始退出。 getDate!= 2 - > false。 false && true == false。 – 2010-12-08 13:07:51