在浏览器中自动转换日期 window

Date being automatically converted in browser window

我目前在我正在使用的网站的前端打印日期时遇到问题。日期是通过 Node.js(mysql 模块)从 MySql 数据库中检索的,它以 MySql DATETIME 格式存储。正在使用的视图引擎是 Handlebars。

问题在于在浏览器中自动转换日期 window,我目前运气不好,无法弄清楚发生这种情况的地点和方式。 Console.logging 从节点数据库查询中检索到的 'date' 字段为我提供了 2018-12-27T18:00:00.000Z 类型的日期,但在浏览器中,此日期打印为 Thu Dec 27 2018 19:00:00 GMT+0000 (Coordinated Universal Time)。我已经尝试在节点端进行 date = date.toString() 转换,但无济于事。

-

这是node.js端的代码:

app.get( '/blog' , ( req , res ) => {
    db.get().query( `SELECT * FROM posts` , ( error , results ) => {
        res.render( "./blog.hbs" , 
            { 
                pageTitle : "xx - My Blog" ,
                posts     : results              
        } );
    } );
} );

提前感谢任何愿意帮助我解决这个难题的人。 祝你有个愉快的一天。

数据库使用ISO DateTime 格式存储时间戳,非常标准和安全。将此时间戳放入 JS 日期构造函数中不应导致任何类型的转换。

但是,当调用 Date 对象的 toString() 方法时,它通常会通过考虑本地机器的时区偏移来生成时间戳。并且时区也添加在时间戳的末尾。

所以据我猜测,这可能不是您服务器端的问题,您应该检查您在浏览器中 运行 的客户端应用程序的代码。

如果要在客户端输出与服务器端完全相同的时间戳,请使用 Date.toISOString() 方法。