2月31日在Date对象中

时间:2013-04-29 10:04:58

标签: javascript date

此代码应记录指定月份的所有日期:

var date = new Date(2012,2,1);
var thisMonth = date.getMonth();
while(date.getMonth()==thisMonth) { // 31 steps ???
    console.log(date.getMonth(),date.getDate());
    date.setDate(date.getDate()+1);
}

它适用于每个月,但2月。任何想法都在哪里?

3 个答案:

答案 0 :(得分:9)

请注意,month参数为 0-indexed ,因此您的代码大约是三月而不是二月

<强> The doc:

  

<强>月

     

表示月份的整数值,从1月份的 0开始   12月11日。

答案 1 :(得分:3)

使用new Date(2012,1,1);月从零开始; - )

答案 2 :(得分:3)

这非常有趣:

new Date('2014-02-28'); // Fri Feb 28 2014 01:00:00 GMT+0100
new Date('2014-02-29'); // Sat Mar 01 2014 01:00:00 GMT+0100
new Date('2014-02-30'); // Sun Mar 02 2014 01:00:00 GMT+0100
new Date('2014-02-31'); // Mon Mar 03 2014 01:00:00 GMT+0100
new Date('2014-02-32'); // Invalid Date