最近在做一個需求,是獲取當前月份的前五個月,我就想到了一個方法,就是是用setMonth()方法,把它設置為想要的月份
for(var i=0;i<5;i++){
var dd = new Date();
dd.setMonth(dd.getMonth()-i);//獲取AddDayCount天后的日期,
vary = dd.getFullYear();
varm = dd.getMonth()+1;//獲取當前月份的日期
vard =newDate(y,m,0).getDate();
if(m<10){
m ="0"+m;
}
if(d<10){
d ="0"+d;
}
this.yearAndMonth= y.toString()+"-"+m.toString();
this.startDateStr= y.toString()+"-"+m.toString()+"-01";
this.endDateStr= y.toString()+"-"+m.toString()+"-"+d.toString();
this.arrList.push([this.yearAndMonth,this.startDateStr,this.endDateStr]);
}
問題就出現在了黑色加粗的部分,setMonth(),第一個參數是月份,第二個為天數,當我們不設置后面的天數的時候,前面設置的月份,就會自動順延,這個是setMonth()的bug,不過如何避免這種問題呢,這就需要在setMonth()后面增加一個1,設為第一天就好了