2014-03-03 52 views
1

考慮在瀏覽器中的JavaScript控制檯下面的兩個片段(我已經與谷歌Chrome嘗試)JavaScript的ISO 8601字符串轉換成Date對象

1日聲明:

s = "2014-03-03 18:30:00"; 
d = new Date(s); 
// Mon Mar 03 2014 18:30:00 GMT+0100 (CET) 

第二屆聲明:

s = "2014-03-03T18:30:00"; 
d = new Date(s); 
// Mon Mar 03 2014 19:30:00 GMT+0100 (CET) 

請參閱?解析的日期和時間對我來說有一個小時不同,因爲我住在UTC + 1。

但爲什麼JavaScript Date對象以不同的方式解析這兩個字符串?因爲根本沒有時區?

+2

第一個被解析爲本地時間,第二個爲UTC。當你在第二個例子中使用'T'時,這意味着你正在指定一個時間和一個時區。既然你*不*給它一個時區,它就認爲它是'0'(UTC)。 –

回答

1
  • 2014-03-03T...表示法是JavaScript Date Time String Format,並且預計會有一個時區。如果您沒有提供,則默認爲Z(UTC)。

  • 然而,2014-03-03 18:30:00表示法只是一個沒有有趣名稱的常規字符串,如果您不提供時區,則它會假定爲本地時間。

此信息取自MDN article about Date.parse()

相關問題