91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB存儲時間時差問題的解決方法

發布時間:2020-09-28 13:08:49 來源:腳本之家 閱讀:469 作者:levinhax 欄目:MongoDB數據庫

前言

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>

toISOString()函數:使用ISO標準將 Date 對象轉換為字符串。

該標準稱為 ISO-8601 ,格式為: YYYY-MM-DDTHH:mm:ss.sssZ。

語法

Date.toISOString()

返回值

類型 描述
String ISO 標準格式的時間與日期

封裝時間轉換函數

localDate(v) {
 const d = new Date(v || Date.now());
 d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
 return d.toISOString();
},

我們在存儲時間的時候調用localDate()這個函數就可以了,無論你處在哪個時區結果顯示都和當地時間一樣。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

周宁县| 株洲县| 泸西县| 青铜峡市| 新和县| 宁陵县| 沈阳市| 景洪市| 太谷县| 山东省| 江口县| 娱乐| 洮南市| 会理县| 贺兰县| 西丰县| 井冈山市| 信阳市| 伊川县| 湘潭县| 梁山县| 崇州市| 汉川市| 濉溪县| 东丽区| 波密县| 禹城市| 甘孜| 清远市| 平湖市| 祁阳县| 乌兰浩特市| 西吉县| 中方县| 甘孜| 济源市| 望城县| 南皮县| 崇义县| 灵山县| 达尔|