通常我从当前日期开始减去一个月,如下所示:
//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)
相同的附加
答案 0 :(得分:0)
当你设置像dateObj.setUTCMonth(4);
这样的静态值时,它会显示相同的2018-05-01
,但如果我们将var dateObj = new Date(); dateObj.setUTCMonth(dateObj.getUTCMonth()-1,30); console.log(dateObj);
设置为有效。这是JS问题。如果您想使用相同的代码,则需要检查每月的日期和时间。然后执行条件基础代码。