【问题标题】:In NodeJS/Sequelize/MySQL, how do I insert time as per local time zone on the server?在 NodeJS/Sequelize/MySQL 中,如何根据服务器上的本地时区插入时间?
【发布时间】:2014-08-21 12:38:13
【问题描述】:

我们正在尝试使用以下查询插入日期时间值 - 插入产品 (name,createdon) 值 ('product1', now()) 我们正在使用 sequelize 触发原始查询。 该值以 UTC 格式存储。

直接从 MySQL 触发相同的查询,将值存储在本地时间。

我们需要以本地时间而不是 UTC 存储的值。我们如何在这里实现这一目标?

【问题讨论】:

    标签: mysql node.js


    【解决方案1】:

    我也遇到了同样的问题。在连接sequlize和Mysql的时候可以通过timezone。所以它会一直使用这个timezone 来保存数据。这是我发现的:

    var sequelize = new Sequelize('database', 'username', 'password', { 
        timezone: '+05:30', //here you can pass timezone
        host: 'host',
        logging: true,
    });
    

    但这不是一个好的解决方案,因为如果您从 2 个不同的时区使用您的应用程序,那么它将为两个不同的时区使用相同的时区,因此数据将不正确。


    好的解决方案是始终使用 UTC timezone:'00:00' 来保存数据,并在获取结果时以用户适当的时区格式显示。这意味着如果用户从US 访问网站,则以US's 格式操作并显示日期时间,如果您从India 访问数据,则以India's 格式操作日期时间并显示。为此,您需要进行一些 DateTime 操作。对于此操作,您可以使用Moment.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多