从mysql获取日期

nkcskrwz  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(280)

我正在mysql workbench上存储值为“2018-06-13”和“2018-07-07”的日期。当我从nodejs服务器得到它时,我有一些困惑:

con.query(stm, function(err, results){
    if (err) throw err;
    for(var i = 0; i < results.length; i++){
        var d = new Date(results[i].date);
        console.log(d);
        console.log(d.getDate())
    }
    console.log(results);

我得到的是:

2018-06-12T17:00:00.000Z
13
2018-07-06T17:00:00.000Z
7
[ RowDataPacket {
date: 2018-06-12T17:00:00.000Z},
RowDataPacket {
date: 2018-07-06T17:00:00.000Z } ]

有人知道为什么服务器上的日期是13和7,但在服务器上收到时却被1减去了吗?

5ssjco0h

5ssjco0h1#

这里的答案很简单,服务器返回的是utc。什么 Date(results[i].date) 返回utc+或-utc和当前时区之间的时差。我跑了

Date('2018-06-12T17:00:00.000Z')

结果是

"Tue Jul 17 2018 16:10:44 GMT+0530 (India Standard Time)"

这是以ist为单位的时间,即utc+5小时30分钟

相关问题