我注意到了一些與時區和Javascript Date
對象有點奇怪的東西。有沒有辦法在Javascript Date對象中表示2012年10月21日的對象?
在Linux機器上嘗試這樣的:
$ TZ='America/Sao_Paulo' js
js> new Date(2012, 9, 21, 0, 0, 0).toString()
"Sat Oct 20 2012 23:00:00 GMT-0300 (BRST)"
我發現它不可能獲得代表2012年十月的每一個attemps當天Date
01:00 00:00拿到的第21屆對象導致在前一天的晚上11點到00點之間的日期。
(Windows用戶可能會改變他們的時區巴西利亞/ GMT-03遇到相同的行爲)
增加1小時(一天),以這樣的日期對象的結果取回同日。
我想它與在巴西的那個特定日期發生的夏令時有關,但我絕對不知道該如何處理。
我有一個循環,在一個月的日子迭代(對於日曆應用程序),它顯然永遠在這種情況下,達到月20日,當循環2012
一定有什麼東西我做錯了,但我不知道如何處理這種情況,因爲我猜它也可能發生在其他時區。
在Javascript中處理Date
的建議方法是什麼?以確保不會出現這樣的時區/夏令時相關問題?
感謝您的回答。然而,我的問題是沒有得到日期的字符串表示形式,而是得到一個代表這個確切時刻的有效對象。 – ereOn
然後只需使用UTC方法:'new Date(Date.UTC(2012,9,21,0,0,0));' – bjornd
確實效果更好。你能否編輯你的答案,使其更明顯真正的解決方案是什麼?我會很高興接受它然後:) – ereOn