最近在做一个需求,是获取当前月份的前五个月,我就想到了一个方法,就是是用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,设为第一天就好了