【问题标题】:Date is reducing by 1 day when storing into postgresql database存储到 postgresql 数据库时,日期减少了 1 天
【发布时间】:2016-06-16 17:53:11
【问题描述】:

在我的节点应用程序中,我使用 postgresql 作为我的数据库。我有一个字段名称startdate。它在我的本地系统中运行良好。当我在数字海洋中托管我的应用程序时,日期减少了 1 天并存储到数据库中......

我的模特:

"properties": {
    "startDate": {
      "type": "date",      
      "required": true,
      "postgresql": {
        "columnName": "startdate",
        "dataType": "date",
        "dataLength": null,
        "dataPrecision": null,
        "dataScale": null,
        "nullable": "YES"
      }
    }

假设我将日期更新为"startDate":"2016-02-11".But its storing as2016-02-10`。这对我来说很奇怪。请分享您对此的想法。提前谢谢..

编辑: 我的 DigitalOcean 当前日期如下:

Thu Jun 16 05:36:48 EDT 2016

我的本​​地日期如下:

Thu Jun 16 15:07:17 IST 2016

EDT 和 IST 会有所不同吗?

【问题讨论】:

    标签: node.js postgresql


    【解决方案1】:

    您提到的时区差异是绝对正确的,因为 IST 是 +0530 UTC 而 EDT 是 -0400 UTC,所以有 0930 小时的时差。现在您可以做的是将 postgre 服务器的时区更改为 UTC 并将日期保存为 UTC 或将 Digital Ocean 服务器的时区更改为 UTC,以便仅将 UTC 日期保存在数据库中。

    【讨论】:

    • 运行 'sudo dpkg-reconfigure tzdata' 并选择时区为 UTC,以便您在 node.js 中的服务器代码将时区处理为 UTC。
    • 您必须检查。如果在您的代码中您没有进行任何时间转换或使用 new Date() ,那么它可以。如果您的项目处于成熟阶段,那么我建议您检查是否有一些代码在时区之间转换并更正它。如果您喜欢它,您也可以接受答案。 :P
    • new Date() 不会影响新数据,但可能会影响数据库中以前的数据,因为这不是 UTC。
    • 以上都不选,它会显示UTC选项。
    • 尝试更改 Postgre 服务器的时区。
    猜你喜欢
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2017-02-11
    相关资源
    最近更新 更多