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
已更改。例如,DB2016-04-10
中的startDate
现在是2016-04-09
。更改日期的原因以及如何修复日期?检查数据库和服务器上的时区设置。这些可能不匹配
服务器将数据从存储在数据库中的数据转换为服务器识别为自己的时区。它从服务器的时区更改为UTC。这是因为JSON.stringify
使用toJSON方法
对象的内置成员。它返回UTC时区的ISO格式的日期字符串。