在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  網(wǎng)絡(luò)安全/ 為何會有GMT+0805 (中國標(biāo)準(zhǔn)時間)?

為何會有GMT+0805 (中國標(biāo)準(zhǔn)時間)?

1.問題:
谷歌瀏覽器
console輸入:new Date(1899, 11, 31, 0, 0, 0)
打?。篠un Dec 31 1899 00:00:00 GMT+0805 (中國標(biāo)準(zhǔn)時間)

圖片描述

2.疑問:為何會出現(xiàn)+0805,如何避免或替代方案?

PS:后續(xù)會用到getTime(),getTimezoneOffset()

感謝。

回答
編輯回答
瞄小懶

因?yàn)?901年之前,上海時間是+8:05:43的,直到1901年之后,切換為真正的東八區(qū),即+8:00:00,chrome做的太細(xì)致了,參考下面這個網(wǎng)站,可以看到歷年時間遷移

https://www.timeanddate.com/t...

不過在我的chrome版本上,卻直接返回 Sun Dec 31 1899 00:00:00 GMT+0800,估計和chrome版本有關(guān)。

2018年1月5日 13:34
編輯回答
朕略萌

感謝@i38me 的科普。
剛剛自己試了moment.js來替代,暫時可行。新版谷歌瀏覽器如果遇到同樣問題的童鞋可以參考下:

思路:
1.獲取1899年當(dāng)時的時區(qū)(例:地點(diǎn)中國上海):
moment([1899,11,31,0,0,0]).utcOffset() 代替getTimezoneOffset() PS:zone已棄用,有個正負(fù)值得問題未研究,注意下
==>480
即為東八區(qū)
2.轉(zhuǎn)化下480==> +0800(自己寫下通用函數(shù))
3.moment("1899-12-31 0:0:0 +0800" , "YYYY-MM-DD HH:mm Z").valueOf() 可代替getTime()

暫時解決方案

2017年6月16日 06:58