// 当前时间 var now = new Date(); // 设置起始日期为上个月1号 var startDate = new Date(); startDate.setMonth(now.getMonth() - 1); startDate.setDate(1);
大多数情况下,以上代码的逻辑不会发生错误。
但是,如果当月当前日期大于上个月最后一天日期,最终获取到的时间是当月1日。如:当前日期是5月31日,而4月最后一天是30日,以上代码最后输出的结果则是5月1日。
※ 正确的代码逻辑 ※:
// 当前时间 var now = new Date(); // 设置起始日期为上个月1号 var startDate = new Date(); startDate.setDate(1); // 必须先设置日期,再设置月份 startDate.setMonth(now.getMonth() - 1);