2016-06-09 105 views
1

所有:瞭解日期字符串

當我從建立像繩子Date對象:

var dt = new Date("2016-05-31 07:35:22+02:00"); 

我不知道該字符串意味着什麼?我認爲這意味着它的地理當地時間是7:35:22而GMT是9:35:22,但是當我使用dt.toUTCString()時,我得到了

「2016年5月31日星期二05:35 :22 GMT「

,這是如此混亂。我想知道哪一部分是錯的?

感謝

+0

您已經發布的時間是UTC提前2小時(+2':00'),因此,當你得到它作爲UTC,比給定值落後兩個小時。 05:35 + 00 = 07:35 + 2:00。所以,這裏一點都沒有錯。 – ManoDestra

回答

1

的+2:00部分告訴你,這個地方時間是在一個時區/ DST目前比UTC時間提前2小時。因此,您需要從此時間減去兩個小時才能達到UTC時間。所以,07:35 + 2:00 = 05:35 + 0:00。根本沒有什麼錯誤。

延伸閱讀:

http://www.timeanddate.com/time/time-zones.html

http://www.w3schools.com/js/js_date_formats.asp

http://joshowens.me/dealing-with-timezones-in-javascript/

+0

謝謝,你能告訴我Date()接受多少時間的字符串格式嗎? – Kuan

+0

有幾個,但最好在給定跨格式字符串的跨瀏覽器/區域兼容性問題的情況下,使用新日期(年,月,日)實例化JavaScript Date對象。或者使用Moment.js。 – ManoDestra

1

這意味着,當前本地時間是7點35分22秒,地點是比格林尼治時間早2小時。

這就是爲什麼UTC是爲顯示比時間

+0

謝謝,你能告訴我有多少時間字符串格式可以Date()接受? – Kuan

+0

您可以使用您編寫的格式而不是+02:00添加任何數字。你可以在這裏閱讀更多:http://www.w3schools.com/jsref/jsref_obj_date.asp – AlexD

1

的+02早兩小時。00在結束意味着您所提供的時間爲2小時提前 UTC的。

因此,如果UTC是05:30,UTC + 1爲06:30,UTC + 2是07:30等

+0

謝謝,你能告訴我有多少時間字符串格式可以Date()接受? – Kuan