在javascript中查找给定日期的下个月

时间:2018-03-27 07:15:33

标签: javascript date datetime

我有一段代码可以找到给定日期的下个月。

var d = new Date('2018-03-31');
dt = new Date(d.setMonth(d.getMonth() + 1));
document.getElementById("demo").innerHTML = dt;

但是我想知道这里有什么问题,因为它增加了一个月March&提供May代替April

样本:



var d = new Date('2018-03-31');

dt = new Date(d.setMonth(d.getMonth() + 1));
document.getElementById("demo").innerHTML = dt;

<p id="demo"></p>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:2)

没有31st April所以它转到1st May。您可以使用2018-03-30

进行尝试

var d = new Date('2018-03-30');

dt = new Date(d.setMonth(d.getMonth() + 1));
document.getElementById("demo").innerHTML = dt;
<p id="demo"></p>

答案 1 :(得分:2)

使用

  

setMonth(月,日)

href 下一个月的https://www.somescrappypage.com/x/x/x/644892 one Demo https://www.somescrappypage.com/x/x/x/6876 two Compilation...

仅当您对部分

感兴趣时

&#13;
&#13;
d.setMonth(d.getMonth() + 1, 1);
&#13;
1st
&#13;
&#13;
&#13;

答案 2 :(得分:0)

setMonth会改变原始Date对象 - 只需尝试setMonth然后再次引用日期对象,而不是创建一个新对象:

&#13;
&#13;
var d = new Date('2018-03-31');
d.setMonth(d.getMonth() + 1);
document.getElementById("demo").innerHTML = d;
&#13;
<p id="demo"></p>
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

4月只有30天。如果您在3月31日添加1个月,那么您将在1个月后,也就是5月1日。