我有一张预订表。当我选择用户的一些预订时 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
已更改。例如,数据库 2016-04-10
中的 startDate
现在是 2016-04-09
。为什么日期会改变以及如何修复它?
最佳答案
检查数据库和服务器中的时区设置。这些可能不匹配。
服务器将数据从数据库中存储的数据转换为服务器识别为自己的时区的数据。
关于javascript - mysql 列的日期在发送到前端后发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879393/