時間:2024-03-26 14:42作者:下載吧人氣:21
前言
MongoDB存儲時間類型數據時,都是先轉換為UTC時間,然后存儲到數據庫中,當我們取出存儲的時間時,就會出現時差的問題。
比如我們用的北京時間,讀取到的數值就會看到比當前時間少了8個小時,難道說我們在每次讀取的時候都要單獨處理一下時間嗎,這就比較麻煩。其實,我們可以在存儲的時候進行相應的處理,只需使用getTimezoneOffset()
和toISOString()
函數。
需要了解的概念:
格林威治時間
格林威治子午線上的地方時,或零時區(中時區)的區時叫做格林威治時間,也叫世界時。(更多詳細的概念不說了,這里我們不需要。) 比如我們中國是東八區,北京時間是(GMT+08:00)
獲得本地與格林威治時間的時差:new Date().getTimezoneOffset(),單位為分鐘。
已知格林威治時間,換算本地正確時間
本地時間 = 格林威治時間 – 時差
已知本地時間,換算對應格林威治時間:
格林威治時間 = 本地時間 + 時差
已知本地時間,換算其他時區的時間
因為時區間的差異是以小時為單位的。所以算出0時區的時間后,再減去或加上相應的小時即可(東N區便+N小時,西N區便-N小時)。 為了方便計算,東N區記做正數,西N區記做負數,即:
目標時區時間 = 本地時間 + 時差 + 時區間隔
getTimezoneOffset函數:返回此地區的時差(當地時間與GMT格林威治標準時間的地區時差),單位為分鐘。
<script> // 我們是東八區 var d = new Date(); var tz = d.getTimezoneOffset(); console.log(tz); // -480 </script>
網友評論