最近在做一個(gè)需求,是獲取當(dāng)前月份的前五個(gè)月,我就想到了一個(gè)方法洒闸,就是是用setMonth()方法碟婆,把它設(shè)置為想要的月份
for(var i=0;i<5;i++){
var dd = new Date();
dd.setMonth(dd.getMonth()-i);//獲取AddDayCount天后的日期,
vary = dd.getFullYear();
varm = dd.getMonth()+1;//獲取當(dāng)前月份的日期
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]);
}
問題就出現(xiàn)在了黑色加粗的部分营搅,setMonth(),第一個(gè)參數(shù)是月份,第二個(gè)為天數(shù),當(dāng)我們不設(shè)置后面的天數(shù)的時(shí)候,前面設(shè)置的月份抄沮,就會(huì)自動(dòng)順延,這個(gè)是setMonth()的bug,不過如何避免這種問題呢岖瑰,這就需要在setMonth()后面增加一個(gè)1叛买,設(shè)為第一天就好了