new Date(str)返回的時間結果在移動端比PC端快了8小時

  最近開發過程當中,後端傳過來一個「2018-03-15T17:53:19.6307928」字符串,須要將字符串轉換成「2018-03-15  17:53」的格式展現出來。首先我使用了var time=new Date("2018-03-15T17:53:19.6307928")方法將時間轉換成標準時間格式,再經過time.getFullYear()等方法獲取到年月日時分的信息,最後經過字符串拼接成爲想要的格式。windows

  OK,這個方法最開始一直沒有問題,在PC瀏覽器上打開,一切正常,可是後來在移動端打開時,發現轉換後的字符串,時間比正確時間快了8小時,後來屢次測試發現,應該是不一樣終端不一樣瀏覽器對於該時間格式的解析有區別,在windowsPC瀏覽器中,咱們修改了電腦的時區設置,new Date(str)返回的時間信息以下後端

 

  

new Date('2018-03-15T17:53:19.6307928')
Thu Mar 15 2018 17:53:19 GMT+0800 (中國標準時間)
new Date('2018-03-15T17:53:19.6307928')
Thu Mar 15 2018 17:53:19 GMT+0900 (Japan Standard Time)

  PC端不會修改你的時間,只是將其轉換成本地時間的格式,然而在移動端,其返回的則是瀏覽器

new Date('2018-03-15T17:53:19.6307928')
Thu Mar 16 2018 01:53:19 GMT+0800 (CST)

  也就是移動端默認傳入的時間是0時區的時間,在將其轉換爲本地時間格式時加了八小時上去,這樣的話就出現了移動端和PC端顯示時間不一樣的問題,所以在這裏不建議後端傳「2018-03-15T17:53:19.6307928」這種時間格式的字符串,而是在後端直接作時間轉換,傳過來「2018-03-15  17:53」格式的字符串直接進行展現。測試

相關文章
相關標籤/搜索