Ich verwende Mungo,
Dies ist das Schema, das ich definiert habe:
const report = mongoose.Schema({
datetime: Date,
username: String,
detail: mongoose.Schema.Types.Mixed
})
Das sind die Daten, die ich gespeichert habe:
let params = {
username: 'testadmin',
detail: '23123',
datetime: new Date('December 17, 1995 03:24:00')
}
Die in Mongodb eingesparte Zeit betr?gt acht Stunden früher:
?3:00 Uhr am 17. Dezember 1995“ wird zu ?19:00 Uhr am 16. Dezember, die Zeitzone ist falsch,,, Bitte sagen Sie mir was.“ sollten Sie in dieser Situation tun? Gibt es eine entsprechende Verarbeitungsmethode in Mongodb oder Mungo?
Vielen Dank im Voraus, Bruder!
原來mongodb中存的是UTC時間,全球統(tǒng)一,,,那就直接存,再存之前不做操作,讀取出來后把時間new Date(report.datetime).toLocaleString(),調(diào)用js自帶的Date().toLocaleString()就行了
因為 mongoose 和 sequelize 開始的時候,沒有考慮時區(qū),ORM 之后就搞錯時區(qū)了。解決方法去看看最新版本是否解決,如果還未解決可以試試把問題發(fā)給作者,然后只能自己在應(yīng)用層預(yù)處理,寫入 +8 小時,讀出 -8 。
正如樓上有同學(xué)所說的,使用ISO格式:new Date("2017-03-02T08:00:00+08:00")
或者
使用moment.js
供參考。
Love MongoDB! Have fun!