2013-12-21 206 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));