代码之家  ›  专栏  ›  技术社区  ›  mpsbhat

在javascript中查找给定日期的下一个月[重复]

  •  4
  • mpsbhat  · 技术社区  · 7 年前

    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>
    4 回复  |  直到 7 年前
        1
  •  5
  •   Yogen Darji    7 年前

    使用

    setMonth(月,日)

    d.setMonth(d.getMonth() + 1, 1); 其中,日期为 1st 年月日 下一个

    只有当你对 部分

    var d = new Date('2018-03-31');
    
    d.setMonth(d.getMonth() + 1, 1);
    
    dt = new Date(d);
    document.getElementById("demo").innerHTML = dt;
    <p id="demo"></p>
        2
  •  2
  •   Thum Choon Tat    7 年前

    没有 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>
        3
  •  0
  •   CertainPerformance    7 年前

    setMonth更改原始日期对象-请尝试 setMonth 然后再次引用日期对象,而不是创建新对象:

    var d = new Date('2018-03-31');
    d.setMonth(d.getMonth() + 1);
    document.getElementById("demo").innerHTML = d;
    <p id="demo"></p>
        4
  •  -1
  •   AdrianL    7 年前

    四月只有30天。如果你在3月31日加上1个月,你将在1个月后,也就是5月1日。