javascript - mysql 列的日期在发送到前端后发生更改

标签 javascript mysql node.js

我有一张预订表。当我选择用户的一些预订时 SELECT * FROM booking WHERE guestId='3'; 我得到:

+-----------+------------+------------+--------+---------+
| bookingId | startDate  | endDate    | roomId | guestId |
+-----------+------------+------------+--------+---------+
|         3 | 2016-04-10 | 2016-04-22 |      2 |       3 |
+-----------+------------+------------+--------+---------+

之后,我将数据发送到前端:

function getGuestHistory(id, res){
  dbHandler.query(`SELECT * FROM booking WHERE guestId='${id}';`, function(err, rows) {
    res.end(JSON.stringify(!err ? rows : `error: ${err}`));
  });
}

现在在前端,当我打印它时 console.log(res) 我的响应是不同的:

[Object]
0: Object
bookingId: 3
endDate: "2016-04-21T21:00:00.000Z"
guestId: 3
roomId: 2
startDate: "2016-04-09T21:00:00.000Z"

看,startDateendDate 已更改。例如,数据库 2016-04-10 中的 startDate 现在是 2016-04-09。为什么日期会改变以及如何修复它?

最佳答案

检查数据库和服务器中的时区设置。这些可能不匹配。

服务器将数据从数据库中存储的数据转换为服务器识别为自己的时区的数据。

关于javascript - mysql 列的日期在发送到前端后发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879393/

相关文章:

javascript - 在 Canvas 中翻转 Sprite

c# - 如何将 MySQL 数据库数据推送到 MVC .NET Web 应用程序

mysql - 带连接的 Sql 条件计数

可变时间范围内的Mysql最大行数

javascript - 了解 ReactJS 和 NodeJS 应用程序如何工作

javascript - 在 Node.js 中使用 Q Promise 循环

javascript - 固定导航 - 滚动到顶部

javascript - 页面重新加载后保持折叠和展开状态

javascript - Angular2-TypeScript : Adding an array to FormControl

json - 如何在 Node.js(express) 上返回由 {} 而不是 [] 包围的 json 返回使用 knex 和 postgresql 的查询结果