2014-11-05 83 views
0

我已經繼承了一個表單,該表單有一些現有的JavaScript,從今天的日期開始創建一個新的日期+ 3個月。使用JavaScript顯示日期+ 3個月?

var monthAway = new Date(new Date); 
var day =monthAway.getDate(); 
var month =monthAway.getMonth() + 3; 
var year =monthAway.getFullYear(); 
$('#Date_for_Second_Store_Access_to_Expire').val(day + "/" + month + "/" + year); 

<p><input id="Date_for_Second_Store_Access_to_Expire" type="hidden" name="Date_for_Second_Store_Access_to_Expire" class="required" /></p> 

問題是,如果今天的日期是十月,十一月或十二月新日期月份將是13,14或15,而不是更新的1,2或3,然後更新年份,如5/11/2014是05/14/2014而非05/02/2015。

任何想法?

+0

你可以用「addMonths()」喜歡「變種一天的日期對象=新的日期()addMonths( 3);」 – 2014-11-05 04:55:40

回答

1

使用setMonth method添加3個月至monthAway變量如下

monthAway.setMonth(monthAway.getMonth() + 3); 

然後簡單地使用改性monthAway顯示到期日期。請注意,getMonth() Method將返回0-11,其中0是一月,1是二月,...,11月,所以你需要這樣做,以顯示正確的月份

var month = monthAway.getMonth() + 1; 

這是完整的修改後的代碼,假設代碼今天執行(5/11/2014),#Date_for_Second_Store_Access_to_Expire的值將爲5/2/2015

var monthAway = new Date(new Date); 
monthAway.setMonth(monthAway.getMonth() + 3); // add 3 months to monthAway 

var day = monthAway.getDate(); 
var month = monthAway.getMonth() + 1; // add 1 because .getMonth returns zero based month 
var year = monthAway.getFullYear(); 
$('#Date_for_Second_Store_Access_to_Expire').val(day + "/" + month + "/" + year); 

<p><input id="Date_for_Second_Store_Access_to_Expire" type="hidden" name="Date_for_Second_Store_Access_to_Expire" class="required" /></p> 

這是顯示day + "/" + month + "/" + year從上面的代碼值的jsfiddle:http://jsfiddle.net/jwa6o6r2/

+0

感謝您的支持!很高興知道我離得很遠 – user3445112 2014-11-06 00:49:45

0

增加month變量時,只要做一個簡單的檢查:

var month = monthAway.getMonth() + 3; 
if(month > 12) //If it crosses 12, start from 1 again. 
    month -= 12; 
0

變化

var month = monthAway.getMonth() + 3; 

var month = ((monthAway.getMonth() + 3) % 12) + 1; 

((monthAway.getMonth() + 3) % 12)會給你一個從0到11。既然你想要1 - 12,那就是+ 1進來的地方。

對於年的問題,請嘗試以下

var year = (month <= 3 ? monthAway.getFullYear() + 1 : monthAway.getFullYear()); 

這將檢查每月小於或等於3,如果你纏,因爲這隻會是可能的。

+0

這很好,謝謝。任何想法我如何也從2014年到2015年更新一年? – user3445112 2014-11-05 04:51:07

+0

@ user3445112查看我剛纔提供的更新。 – David 2014-11-05 04:51:26

2

嘗試這種情況:

var x = 3; //or whatever offset 
var CurrentDate = new Date(); 
CurrentDate.setMonth(CurrentDate.getMonth() + x); 
alert(CurrentDate); 
+0

+1不錯,簡單。 – 2014-11-05 04:49:14