2015-11-05 57 views
0

這是我的頭,我不知道爲什麼會發生 - 會喜歡一些見解。使用.toISOString()轉換日期什麼也不做?

也能正常工作爲當前日期和時間轉換爲ISO8601格式:

var today = new Date().toISOString(); 
console.log(today); 

但是,如果我轉換之前改變創建日期該方法失敗。是否因爲在創建日期時必須使用此方法?

var tomorrow = new Date(); 
tomorrow.setDate(tomorrow.getDate() + 1); 
tomorrow.toISOString(); 
console.log(tomorrow); 

輸出將是明日期的未轉換日期字符串(+1在創建日期後只是將日增1)。

爲了上帝的愛,爲什麼!?

回答

2

toISOString()返回String,但不改變原來的目的。

而不是做的......

... 
tomorrow.toISOString(); 
console.log(tomorrow); 

只是做

console.log(tomorrow.toISOString()); 
+0

標記這是公認的答案(雖然兩者的答案是正確的),因爲它也解釋了爲什麼** **我的記錄錯誤的東西。感謝Marcelo和@Daniel Kmak – GrayedFox

1

你只是記錄錯誤的東西。您還沒有登錄tomorrow.ToISOString()而不是tomorrow

var tomorrow = new Date(); 
tomorrow.setDate(tomorrow.getDate() + 1); 
console.log(tomorrow.toISOString()); 

輸出:

2015-11-06T11:29:31.136Z