NodeJS响应MySQL时区不同,当我直接从MySQL获取

当我直接请求MySQL时,我得到UTC的date(我在MySQL服务器中设置了UTC),但是使用NodeJS获得UTC + 2本地时区数据,为什么? 我如何设置NodeJS获取UTC?

在这里输入图像描述在这里输入图像描述

我在初始化mysql连接时在index.js中添加了时区

var db_config = { host : 'localhost', user : 'xxx', password : '', database : 'xxx', timezone: 'utc' //<-here this line was missing }; 

虽然这是一个老问题,但我遇到了类似的问题,并添加了configurationtimezone: 'utc'没有解决问题(它变得更糟)。

我最终使用的解决scheme是添加config dateStrings : true这样我有一个原始的stringdate和MySQL模块不会自己转换为JavaScriptdate。

然后,我使用moment.utc(thedatestring)来获取一个合适的javascript对象(在数据库中,我将DATETIME列中的所有date都保存为UTC,而与主机的configuration无关)。 使用Moment.js 。

尝试将时区值设置为“UTC + 0”,这为我工作。

您还可以将dateStrings属性设置为DATETIME。

dateStrings:强制datetypes(TIMESTAMP,DATETIME,DATE)以stringforms返回,而不是充满JavaScriptdate对象。 (默认:false)

请参阅: https : //github.com/mysqljs/mysql#connection-options