Heim > Fragen und Antworten > Hauptteil
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!
伊谢尔伦2017-06-05 11:10:46
原来mongodb中存的是UTC时间,全球统一,,,那就直接存,再存之前不做操作,读取出来后把时间new Date(report.datetime).toLocaleString(),调用js自带的Date().toLocaleString()就行了
漂亮男人2017-06-05 11:10:46
因为 mongoose 和 sequelize 开始的时候,没有考虑时区,ORM 之后就搞错时区了。解决方法去看看最新版本是否解决,如果还未解决可以试试把问题发给作者,然后只能自己在应用层预处理,写入 +8 小时,读出 -8 。
我想大声告诉你2017-06-05 11:10:46
正如楼上有同学所说的,使用ISO格式:new Date("2017-03-02T08:00:00+08:00")
或者
使用moment.js
供参考。
Love MongoDB! Have fun!