我目前遇到一个问题,当打印一个网站的前端,我的工作日期。日期通过node.js检索( mysql
模块)从一个mysql数据库,它存储在一个mysql数据库中 DATETIME
格式。正在使用的视图引擎是车把。
问题在于,当在浏览器窗口中时,日期会自动转换,而我目前在试图弄清楚这是在哪里发生的以及如何发生的方面运气不佳。console.logging记录从node db查询检索到的'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
} );
} );
} );
提前感谢任何愿意帮助我解决这个难题的人。祝您有个美好的一天。
1条答案
按热度按时间uxh89sit1#
数据库使用iso datetime格式来存储时间戳,这是非常标准和安全的。将此时间戳放入js date构造函数中不应导致任何类型的转换。
但是,当调用date对象上的tostring()方法时,它通常通过考虑本地机器的时区偏移来生成时间戳。时区也添加在时间戳的末尾。
因此,据我所知,这可能不是服务器端的问题,而是应该检查正在浏览器中运行的客户端应用程序的代码。
如果要在客户端输出与服务器端完全相同的时间戳,请使用date.toisostring()方法。