是否有一个简单的解决方案,可以在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;
答案 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);