发送到前端后,mysql列的日期发生了变化

时间:2016-03-08 22:35:21

标签: 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已更改。例如,来自数据库startDate的{​​{1}}现在是2016-04-10。为什么更改日期以及如何解决?

1 个答案:

答案 0 :(得分:0)

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

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