我已經看到很多JavaScript的時區問題,但我沒有找到一個具體如下。Javascript - Timezoneoffset和LocaleString是不同的
當我在JS中使用新的Date()時,我從LocaleString獲得了不同的時區。 我已經在同事的一些瀏覽器中測試了這一點,並且在一些行爲中沒有問題。
例如,在我的瀏覽器我得到:
new Date()
-> Mon Oct 05 2015 20:49:14 GMT-0200 (E. South America Daylight Time)
new Date().toLocaleString()
-> "10/5/2015, 7:50:11 PM"
正確的時間是7:50 PM。爲什麼他們的行爲不同?最重要的是,我如何創建新的Date(),但是顯示格林威治標準時間19:50? 我不想手動設置時區,因爲我們有夏令時,並且在那段時間內,我將不得不更改代碼。
在此先感謝!
編輯:作爲瀏覽器通過新的Date()創建
在我的情況下,新的日期()更改時,我關閉和打開Windows中的選項「自動調整爲夏令時」。基本上,新的Date()返回依賴於您的系統設置。 – Molda
你能告訴我們你正在使用哪種瀏覽器和操作系統嗎? –
從控制檯中的原始日期顯示的格式是UTC風格,但它恰好作爲發生在本地進行格式化的日期。您可以調整實際日期的offselt,使其在您的語言環境中正確顯示,使用偏移量:'new Date(new Date() - (new Date()。getTimezoneOffset()* 60000))'你可以在哪裏分第一個內部「新日期」爲現有日期。同樣,'new Date(new Date() - (new Date()。getTimezoneOffset()* 60000)).toISOString()。split(/ \ D + /)'給你本地日期部分以自我格式(如果需要的話)。 – dandavis