Node.js中sequelize時(shí)區(qū)的配置方法
基本概念
我們先來(lái)介紹一些可能當(dāng)年在地理課上學(xué)習(xí)過(guò)的基本概念。
說(shuō)起來(lái),時(shí)間真是一個(gè)神奇的東西。以前人們通過(guò)觀察太陽(yáng)的位置來(lái)決定時(shí)間(比如:使用日晷),這就使得不同經(jīng)緯度的地區(qū)時(shí)間是不一樣的。后來(lái)人們進(jìn)一步規(guī)定以子午線為中心,向東西兩側(cè)延伸,每 15 度劃分一個(gè)時(shí)區(qū),剛好是 24 個(gè)時(shí)區(qū)。然后因?yàn)橐惶煊?24 小時(shí),地球自轉(zhuǎn)一圈是 360 度,360 度 / 24 小時(shí) = 15 度/小時(shí),所以每差一個(gè)時(shí)區(qū),時(shí)間就差一個(gè)小時(shí)。
最開(kāi)始的標(biāo)準(zhǔn)時(shí)間(子午線中心處的時(shí)間)是英國(guó)倫敦的皇家格林威治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間(因?yàn)樗鼊偤迷诒境踝游缇€經(jīng)過(guò)的地方),這就是我們常說(shuō)的 GMT(Greenwich Mean Time)。然后其他各個(gè)時(shí)區(qū)根據(jù)標(biāo)準(zhǔn)時(shí)間確定自己的時(shí)間,往東的時(shí)區(qū)時(shí)間晚(表示為 GMT+hh:mm)、往西的時(shí)區(qū)時(shí)間早(表示為 GMT-hh:mm)。比如,中國(guó)標(biāo)準(zhǔn)時(shí)間是東八區(qū),我們的時(shí)間就總是比 GMT 時(shí)間晚 8 小時(shí),他們?cè)诹璩?1 點(diǎn),我們已經(jīng)是早晨 9 點(diǎn)了。
但是 GMT 其實(shí)是根據(jù)地球自轉(zhuǎn)、公轉(zhuǎn)計(jì)算的(太陽(yáng)每天經(jīng)過(guò)英國(guó)倫敦皇家格林威治天文臺(tái)的時(shí)間為中午 12 點(diǎn)),不是非常準(zhǔn)確,于是后面提出了根據(jù)原子鐘計(jì)算的標(biāo)準(zhǔn)時(shí)間 UTC(Coordinated Universal Time)。
一般情況下,GMT 和 UTC 可以互換,但是實(shí)際上,GMT 是一個(gè)時(shí)區(qū),而 UTC 是一個(gè)時(shí)間標(biāo)準(zhǔn)。
下面開(kāi)始本文的正文:
Node.js sequelize時(shí)區(qū)配置
sequelize 默認(rèn)情況下,保存日期時(shí)會(huì)轉(zhuǎn)換成 +00:00時(shí)區(qū),例如
提交數(shù)據(jù):
time=2017-07-17 16:52:12
數(shù)據(jù)庫(kù)中會(huì)保存成
2017-07-17 08:52:12
解決方式:
sequelize時(shí)配置時(shí)區(qū)
timezone: '+08:00'
如:
const sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
port: config.port,
dialect: 'mysql',
pool: {
max: 5,
min: 0,
idle: 10000
},
timezone: '+08:00'
});
PS:鏈接的所有數(shù)據(jù)庫(kù)(讀和寫(xiě))都要設(shè)置合適的時(shí)區(qū),否則會(huì)出現(xiàn)時(shí)間寫(xiě)入不一致的情況
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
node.js中的path.basename方法使用說(shuō)明
這篇文章主要介紹了node.js中的path.basename方法使用說(shuō)明,本文介紹了path.basename的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node.js數(shù)據(jù)庫(kù)操作之連接MySQL數(shù)據(jù)庫(kù)(一)
前一陣在做項(xiàng)目的時(shí)候,需要通過(guò)nodejs連接到MySQL數(shù)據(jù)庫(kù),于是簡(jiǎn)單地學(xué)習(xí)了一下MySQL這個(gè)庫(kù),分享一些學(xué)習(xí)心得給大家,希望對(duì)大家有幫助。下面這篇文章主要介紹了Node.js數(shù)據(jù)庫(kù)操作之連接MySQL數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下。2017-03-03
Node.js如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)連接池
文章介紹了Node.js中實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)連接池的方法,通過(guò)預(yù)先建立和管理數(shù)據(jù)庫(kù)連接對(duì)象,優(yōu)化數(shù)據(jù)庫(kù)連接的使用效率2024-11-11
nodejs+mongodb aggregate級(jí)聯(lián)查詢操作示例
這篇文章主要介紹了nodejs+mongodb aggregate級(jí)聯(lián)查詢操作,結(jié)合實(shí)例形式分析了基于nodejs的mongodb數(shù)據(jù)庫(kù)級(jí)聯(lián)查詢相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
在Nodejs中實(shí)現(xiàn)一個(gè)緩存系統(tǒng)的方法詳解
在數(shù)據(jù)庫(kù)查詢遇到瓶頸時(shí),我們通??梢圆捎镁彺鎭?lái)提升查詢速度,同時(shí)緩解數(shù)據(jù)庫(kù)壓力,在一些簡(jiǎn)單場(chǎng)景中,我們也可以自己實(shí)現(xiàn)一個(gè)緩存系統(tǒng),避免使用額外的緩存中間件,這篇文章將帶你一步步實(shí)現(xiàn)一個(gè)完善的緩存系統(tǒng),需要的朋友可以參考下2024-03-03
Ubuntu 16.04 64位中搭建Node.js開(kāi)發(fā)環(huán)境教程
如果想要在Ubuntu 16.04上安裝Node.js的話,這篇文章對(duì)你來(lái)說(shuō)肯定很重要。Node.js從本質(zhì)上來(lái)說(shuō)就是一個(gè)運(yùn)行在服務(wù)端上的封裝好了輸入輸出流的javascript程序。本文給大家詳細(xì)介紹了在Ubuntu 16.04 64位搭建Node.js開(kāi)發(fā)環(huán)境的步驟,有需要的朋友們可以參考學(xué)習(xí)。2016-10-10

