通过setMonth()设置日期为上个月1号的正确方法

// 当前时间
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);
此条目发表在JavaScript分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复