2013-12-21 315 views
1

我有日期2013-12-28,我想添加一个或多个日子。所以如果我再多加一天,它会是2013-12-29
我尝试通过添加它的日期(日期28 + 1)的值来添加它,但它可以工作,但是如果我再添加7个日期呢?日期将是35,当然它不是一个有效的日期格式。
有人可以帮助我吗?
这里是我的脚本的例子:计算javascript日期

var d = new Date(); 
var Y = d.getFullYear(); 
var M = d.getMonth()+1; 
var D = d.getDate(); 
var DT = d.getDate()+1;// what if i + 20 days from today? the format would be invalid 

var today = Y+"-"+M+"-"+D; 
var tomorrow = Y+"-"+M+"-"+DT; 
alert(today+" <> "+tomorrow); 
// "<>" means nothing 
+0

我会检查它。谢谢 –

回答

3

如果你已经有约会对象在你的代码显示:

var d = new Date(); 

...那么你可以7天添加到它像这样:

d.setDate(d.getDate() + 7); 

...如果需要,它会自动递增月份。

延伸阅读:

如果你需要提取的年,月,日,以格式化结果以特定的方式做到这一点之后加入天数。

+0

+1,永远不知道setDate会自动增加 – TwilightSun

+0

aha,setDate()。它有助于:D –

5

您可以尝试这样使用getdate()setdate()getdate()

var myDate = new Date(); 
myDate.setDate(myDate.getDate() + 7); 
+1

是,setDate()。它有助于 –

+0

@OkiErieRinaldi: - 是的,它为你做了诡计! :) –

0

解决的办法是你的日期字符串转换为UNIX时间戳,并将它们添加3600 * 24 * <天数>来时间戳并将它们转换回日期字符串。

的代码可以如下:

function addDaysToDate(date, days) { 
    var time = Date.parse(date) + days * 24 * 3600; 
    date = new Date(time); 
    return date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate(); 
} 
var date = '2013-12-28'; 
console.log(addDaysToDate(date, 7));