如何显示过去3个月?

时间:2019-10-14 09:10:16

标签: 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,则结果为2020-03-31

2 个答案:

答案 0 :(得分:1)

var b = new Date();
var c = new Date(b.getFullYear(), b.getMonth() + 3, 0);
console.log(c)
console.log(c.toISOString().substr(0, 10))
console.log(c.toLocaleDateString())

var b = new Date();
var c = new Date(b.getFullYear(), b.getMonth() + 3, 0);
console.log(c);
c = c.toISOString().substr(0, 10)
console.log(c);
Tue Dec 31 2019 00:00:00 GMT+0300 (GMT+03:00)
2019-12-31

Bilals“第一个”答案实际上是正确的。这是因为toISOString和您的时区偏移,您可以使用getTimezoneOffset()或使用toLocaleDateString()方法进行修复。

答案 1 :(得分:0)

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

var b = new Date()
b.setMonth(b.getMonth() + 3);
var c = new Date(b.getFullYear(), b.getMonth(), 1);
c = c.toISOString().substr(0, 10)
console.log(c)