2011-10-26 48 views
5

我需要設置一個日期,從現在算起,考慮到28,29,30,31天的30天,因此它不會跳過任何日期並顯示30幾天後。我怎樣才能做到這一點?Javascript - 設置日期從現在起30天

+1

請參閱[日期](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) –

回答

25

JavaScript的 「日期()」 對象已一應俱全:

var future = new Date(); 
future.setDate(future.getDate() + 30); 

這隻會做正確的事。 (這是一個有點混亂,對於一個月中某一天的吸氣/ setter方法有他們的名字。)

+1

我不認爲這有效,至少根據文檔:https:// developer。 mozilla.org/en/JavaScript/Reference/Global_Objects/Date/setDate參數設置爲'setDate'應該在1到31之間。但是,我記得使用這個有一次,它工作,所以...也許它.. 。 – Domenic

+0

非常感謝,你能證實它有效嗎? – Victor

+0

添加'新日期(future.setDate(future.getDate()+ 30))。toString();'爲我工作。 – meagar

3
var now = new Date(); 
var THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000; 
var thirtyDaysFromNow = now + THIRTY_DAYS; 
+0

不適合我; 'thirtyDaysFromNow.toString()'產生「無效的日期」。 'new Date(now + )'或者產生「Invalid Date」或者與now相同的值。我認爲這不符合你的想法。 – meagar

+3

這會工作,但改爲使用'var now = new Date()。getTime();' –

+0

好抓住@meagar和@John Strickler; '新日期'是錯誤的。 – Domenic

3

做使用與簡單的語法本地Date對象,並沒有外部庫:

var future = new Date('Jan 1, 2014'); 

future.setTime(future.getTime() + 30 * 24 * 60 * 60 * 1000); // Jan 31, 2014 

的日期時刻設定和1970年1月1日以來的getTime函數使用毫秒(link)。