当月份为31时,javascript减去一个月返回当月的第一天

时间:2018-05-31 10:04:07

标签: javascript date

通常我从当前日期开始减去一个月,如下所示:

//assuming today is 2018-05-30T09:50:05.345Z

var d = new Date;
console.log(d);
// return : 2018-05-30T09:50:05.345Z

d.setUTCMonth( d.getUTCMonth() -1 );
console.log(d);
//return : 2018-04-30T09:50:05.345Z

但是假设,今天是本月31日,这不再起作用了...... ex:

//assuming today is 2018-05-31T09:54:23.850Z

var d = new Date;
console.log(d);
// return : 2018-05-31T09:54:23.850Z

d.setUTCMonth( d.getUTCMonth() -1 );
console.log(d);
//return : 2018-05-01TT09:54:23.850Z

而不是将日期设置为上个月,将日期设置为月的第一天(与d.setMonth(d.getMonth - 1)相同的附加

我错过了什么?

1 个答案:

答案 0 :(得分:0)

当你设置像dateObj.setUTCMonth(4);这样的静态值时,它会显示相同的2018-05-01,但如果我们将var dateObj = new Date(); dateObj.setUTCMonth(dateObj.getUTCMonth()-1,30); console.log(dateObj);设置为有效。这是JS问题。如果您想使用相同的代码,则需要检查每月的日期和时间。然后执行条件基础代码。