在浏览器中自动转换日期 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() 方法。
我目前在我正在使用的网站的前端打印日期时遇到问题。日期是通过 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() 方法。