Javascript 如何显示过去的3个月?

Javascript 如何显示过去的3个月?,javascript,jquery,date,Javascript,Jquery,Date,当前日期:2019-10-14 我试着这样: var b = new Date() var c = new Date(b.setMonth(b.getMonth() + 3)); c = c.toISOString().substr(0, 10) console.log(c) 结果:2020-01-14 但我希望最长的日期是最后一个月的日期。也就是2019-12-31 我怎么做 更新 例如: 当前日期:2019-11-03,则结果为2020-01-31 当前日期:2020-01-09,则结果为

当前日期:2019-10-14

我试着这样:

var b = new Date()
var c = new Date(b.setMonth(b.getMonth() + 3));
c = c.toISOString().substr(0, 10)
console.log(c)
结果:2020-01-14

但我希望最长的日期是最后一个月的日期。也就是2019-12-31

我怎么做

更新

例如:

当前日期:2019-11-03,则结果为2020-01-31


当前日期:2020-01-09,则结果为2020-03-31

您可以在
日期
构造函数中传递1作为第三个参数:

var b=新日期()
b、 setMonth(b.getMonth()+3);
var c=新日期(b.getFullYear(),b.getMonth(),1);
c=c.toISOString().substr(0,10)
console.log(c)
var b=新日期();
var c=新日期(b.getFullYear(),b.getMonth()+3,0);
控制台日志(c)
log(c.toISOString().substr(0,10))

console.log(c.toLocaleDateString())
将日期设置为1,加上四个月,减去一天您不想检查年份是否不匹配返回2019-12-31吗?亲爱的第一位,您能清楚过去或未来吗?因为在标题中你写了过去3个月,在描述中你写了未来3个月的最后一天?@MadhuriPatel我的意思是显示最后3个月或未来3个月。结果是2019-12-30。2019-2012年-31@SuccessMan已更正(根据需要修改),您现在可以检查吗?
b.setMonth(b.getMonth()+3)
可能会增加比您想象的更多的月份。11月30日+3个月为3月1日或2日。此外,由于时区偏移,toISOString可能具有不同的日期。请小心使用toISOString。对于格林威治以东的用户,上面显示的时间比您预期的早1天。在2019年10月15日运行,GMT+10中的用户将获得“2019-12-30T14:00:00.000Z”,2019-12-30,31/12/2019。Bilals答案不是一个好答案,并且会定期失败。它没有正确添加月份,没有将日期设置为月底,并且对于某些用户,使用toISOString可以将日期偏移一天。