Javascript 发送到前端后mysql列中的日期已更改

Javascript 发送到前端后mysql列中的日期已更改,javascript,mysql,node.js,Javascript,Mysql,Node.js,我有一张预订桌。当我选择用户的一些预订时select*FROM booking WHERE guestId='3'我有: +-----------+------------+------------+--------+---------+ | bookingId | startDate | endDate | roomId | guestId | +-----------+------------+------------+--------+---------+ | 3

我有一张预订桌。当我选择用户的一些预订时
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"

看,
startDate
endDate
已更改。例如,DB
2016-04-10
中的
startDate
现在是
2016-04-09
。更改日期的原因以及如何修复日期?

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


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

它从服务器的时区更改为UTC。这是因为
JSON.stringify
使用
toJSON方法
对象的内置成员。它返回UTC时区的ISO格式的日期字符串。