2014-07-14 26 views
0

從我的理解,加入天在Javascript當前Date對象是這樣工作的:的JavaScript的setdate錯誤

var today = new Date("4/28/14"); 
    var twoDays = new Date(); 
    twoDays.setDate(today.getDate() + 2); 

而且它爲我工作一半時間。雖然這組代碼:

var today = new Date("4/28/14"); 
    var twoDays = new Date(); 
    twoDays.setDate(today.getDate() + 2); 
    var oneWeek = new Date(); 
    oneWeek.setDate(today.getDate() + 7); 
    var twoWeeks = new Date(); 
    twoWeeks.setDate(today.getDate() + 14); 

正在恢復這對我來說:

Mon Apr 28 2014 00:00:00 GMT-0700 (US Mountain Standard Time) 
    Wed Jul 30 2014 16:37:38 GMT-0700 (US Mountain Standard Time) 
    Mon Aug 04 2014 16:37:38 GMT-0700 (US Mountain Standard Time) 
    Mon Aug 11 2014 16:37:38 GMT-0700 (US Mountain Standard Time) 

出於某種原因,它跳躍到七八月份的時候應該只會到六月。有人能幫我弄清楚爲什麼這樣做是這樣嗎?顯然,4月28日後的14天不在8月。

謝謝!

+0

回覆:'新日期(「4/28/14」)',不要這樣做。日期字符串的解析完全依賴於實現,除了ECMA-262中指定的格式以外,所有使用的瀏覽器都不支持該格式,或者支持它的格式一致。 – RobG

回答

2

你正在做

var twoDays = new Date(); 

它設置爲今天。不是你的變量today,但是到今天,7/14/2014。

然後你做了twoDays.setDate(today.getDate() + 2);其中的日期設置爲30,因爲today這一天的部分變量是28

其他一切都是同樣的錯誤,但與其他變量,所以希望你可以從那裏弄清楚。

+0

啊......我知道是在做一些愚蠢的事情。謝謝! – user2889002