用js的Date,本来是要获取上个月的1号,很自然的用下面的代码:
var startDate = new Date();
//月份减1
startDate.setMonth(startDate.getMonth() - 1);
//日期设置为1号
startDate.setDate(1);
之前没有问题,今天3月29日,测试时发现,上月变成了3月1日,而不是正常的2月1日。
经测试,3月28日之前就正常,3月28日之后就异常。这说明是由2月份只有28天引起的。
于是将代码调整,先设置为1号,再设置月份,正常。
var startDate = new Date();
//日期设置为1号
startDate.setDate(1);
//月份减1
startDate.setMonth(startDate.getMonth() - 1);
另一个小技巧,想获取上个月最后一天,只需要设置SetDate参数为0即可。
var endDate = new Date();
//上个月最后一天
endDate.setDate(0);