mongoose时间自动转化为格林尼治标准时间的解决方案
生活随笔
收集整理的這篇文章主要介紹了
mongoose时间自动转化为格林尼治标准时间的解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
坑點描述
本地時間
Fri Sep 01 2017 00:00:00 GMT+0800 (China Standard Time)
上傳到mongoose數據庫
ISODate(“2017-08-31T16:00:00.000+0000”)
這是一個隱藏的坑點,上傳到mongoose的時間類型數據會自動被轉化為格林尼治時間(零時區時間)。
而我們當前的時區為東八區,換算成零時區時間需將我們的時間減去八個小時
網上看了下大多數的解決方案是將上傳之前本地時間減去八小時,數據庫中讀取數據時就可以直接取到正確的時間,然而這么做這么做又引入了一個新的BUG,若當前時區不是東八區,這種操作會返回一個錯誤的時間,因為世界各地轉化為格林尼治標準時間的時差不同。
終極解決方案
在從數據庫讀取到時間以后,使用new Date(time)方法可以自動轉化為當前時區時間。
console.log($scope.currentType.updated); //2017-08-30T04:10:04.713Z console.log(new Date($scope.currentType.updated)); //Wed Aug 30 2017 12:10:04 GMT+0800 (China Standard Time)END
總結
以上是生活随笔為你收集整理的mongoose时间自动转化为格林尼治标准时间的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我是一名自由职业白帽黑客
- 下一篇: 公共关系礼仪实务章节测试题——公共关系的