javascript - Node js在查询记录时自动将MySQL中的GMT格式日期转换为本地格式

标签 javascript mysql node.js

在我的 Node 应用程序中,我有 MySQL 数据库,其中有一个名为 xxx_date 的 GMT 日期格式的列。我正在使用 Node JS 从数据库查询日期字段。结果数据采用我的本地时间格式。我想要相同的数据(格林尼治标准时间)。我也尝试使用 CONVERT_TZ 方法更改查询。但结果数据不匹配。有人提出了一种正确的方法。

例如

 xxx_date in DB: 2017-05-22 08:14:00
 the date I get after querying from DB: 2017-05-22T02:44:00.000Z
 but it should be either: 1:45 PM Monday, May 22, 2017, or  2017-05-22 08:14:00

这背后发生了什么?

最佳答案

在谷歌搜索一天后,我发现了这个。 MySQL连接将默认使用本地时区( https://github.com/sidorares/node-mysql2/issues/262 ),通过在配置文件中将其更改为UTC,我们可以获取与数据库中相同的数据。

在mysql连接中

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  timezone:'UTC',
  port: 3307
});

关于javascript - Node js在查询记录时自动将MySQL中的GMT格式日期转换为本地格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44177482/

相关文章:

javascript - DataTables 函数 - table.row.add ,不使用表内的按钮(javascript)

javascript - 如何验证逗号分隔的电子邮件地址并限制电子邮件地址的 Angular ?

javascript - 在 Backbone 路由中匹配空路由和尾部斜杠?

mysql 查询 orderby groupby,

node.js - 用于启动前端和后端进行调试的 VS Code 设置

javascript - 如何将 Array.prototype.map() 与 then() 一起用于 connection.end()

node.js - 如何从 Node 中的所有模型访问mongodb

javascript - 使 div 与其他 4 个 div 水平重叠并在页面上拉伸(stretch)(高度 100%?)

MySQL 更新或添加字段

mysql - 插入查询中是否有任何选项可以避免比较两个字段时重复输入?