为了账号安全,请及时绑定邮箱和手机立即绑定

JS new Date() 保存到 mongodb 中会早8个小时,是格林尼治时间

JS new Date() 保存到 mongodb 中会早8个小时,是格林尼治时间

慕后森 2018-08-21 21:39:03
我用的 mongoose ,这是我定义的 Schema :const report = mongoose.Schema({     datetime: Date,     username: String,     detail: mongoose.Schema.Types.Mixed})这是我存入的数据:let params = {     username: 'testadmin',     detail: '23123',     datetime: new Date('December 17, 1995 03:24:00') }存进 mongodb 中后存的时间会早八个小时:‘95年12月17日凌晨3点’变成了‘12月16日晚上7点,时区搞错了,,,请问大家这种情况应该怎么办?mongodb 或者 mongoose 有相应的处理方法吗?小弟这里先谢过!
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

因为 mongoose 和 sequelize 开始的时候,没有考虑时区,ORM 之后就搞错时区了。解决方法去看看最新版本是否解决,如果还未解决可以试试把问题发给作者,然后只能自己在应用层预处理,写入 +8 小时,读出 -8 。

查看完整回答
反对 回复 2018-08-26
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

原来mongodb中存的是UTC时间,全球统一,,,那就直接存,再存之前不做操作,读取出来后把时间new Date(report.datetime).toLocaleString(),调用js自带的Date().toLocaleString()就行了

查看完整回答
反对 回复 2018-08-26
  • 2 回答
  • 0 关注
  • 1774 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信