当天数增加时,下个月增加Javascript日期对象?

时间:2014-12-16 16:52:50

标签: javascript date getdate

是否有一个简单的解决方案,可以在getDate添加天数时自动增加日期对象的月份?

我需要在用户提供的日期中添加2天,例如,如果用户输入的值为2014-11-16,则会返回2014-11-18

我在下面的示例中使用了此功能,但问题是如果用户在月末提供日期,例如2014-11-30它将返回2014-11-32(11月只有30天)而不是滚动到下个月,它应该是2014-12-02

它也不会增加到新的一年。

 var actualDate = new Date(arrive);

        var year = actualDate.getFullYear();
        var monthy = actualDate.getMonth()+1;
        var days = actualDate.getDate()+2;
        var out = year + '-' + (monthy < 10 ? '0' : '') + monthy + '-' + days;

http://jsfiddle.net/bubykx1t/

2 个答案:

答案 0 :(得分:2)

只需使用setDate()方法。

var actualDate = new Date(arrive);
actualDate.setDate(actualDate.getDate() + 2);

查看此link

答案 1 :(得分:1)

您可以根据自1970年1月1日00:00:00 UTC以来的毫秒数创建新的Date对象。由于设置了分钟,小时,天,周的毫秒数,因此我们可以将固定数量添加到当前时间以便在将来获得时间。我们可以忘记一个月中的哪一天或一年,因为它是自1970年以来的毫秒数所固有的。 这将正确地适应几个月和几年。

var numberOfDaysToIncrement = 7;
var offset = numberOfDaysToIncrement * 24 * 60 * 60 * 1000;

var date = new Date();
var dateIncremented = new Date(date.getTime() + offset);