在NodeJS / Sequelize / MySQL中,如何根据服务器上的本地时区插入时间?

时间:2014-08-21 12:38:14

标签: mysql node.js

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

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

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

1 个答案:

答案 0 :(得分:3)

我也面临同样的问题。在连接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格式操作DateTime并显示,并且您从India访问数据然后以India's格式操作DateTime并显示。为此,您需要执行一些DateTime操作。对于此操作,您可以使用Moment.js