【发布时间】:2017-02-16 06:16:33
【问题描述】:
我的一个表有一个名为生日的字段,其数据类型为日期,但是当我尝试通过 Express 应用程序导出数据时,它会将日期更改为比应有的日期小一。例如,当我将其导出为 1978 年 6 月 19 日时,生日确实是 1978 年 6 月 20 日。
我在注销数据时注意到的一些事情是,即使它是一个仅限日期的字段(续集?)正在向它添加时间戳。因此,如果我不对日期进行任何格式化(我需要这样做),那么日期将是正确的,但对于我们的导出来说是不可读的。
当我从开发笔记本运行应用程序时,一切正常,但当我推送到 QA 时,它返回错误的日期。
如果我从笔记本(位于太平洋时区)打开 PG3Admin 以查询 QA/生产服务器(位于夏威夷时区)上的数据,则数据看起来正确。
我正在使用 Sequelize v3.4.1 连接到 Postgres 9.3 数据库。同样在我的 Sequelize 配置文件中,我设置了 "timezone": "-10:00" 选项。
【问题讨论】:
-
建议您使用UTC将日期存储在数据库中,并且只设置显示时区
-
Sequelize 社区似乎不建议这样做。奇怪的部分是在数据库中它只存储没有时间的日期。
-
请检查this answer
标签: javascript express sequelize.js