通常从当前日期开始减去一个月,如下所示:
//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号,这不再起作用...例如:
//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)相同
我遗漏了什么?
发布于 2018-05-31 18:46:05
当你放入像dateObj.setUTCMonth(4);这样的静态值时,它会显示相同的值,即2018-05-01,但如果我们放入var dateObj = new Date(); dateObj.setUTCMonth(dateObj.getUTCMonth()-1,30); console.log(dateObj);,那么works.This就是JS问题。如果要使用相同的代码,则需要检查月份中的天数,然后执行条件基础代码。
https://stackoverflow.com/questions/50621688
复制相似问题