当前日期: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
答案 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)