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