mysql - 节点 js 服务器,mysql db,返回不正确的日期值
问题描述
我正在为 mysql 数据库中的表构建一个简单的 nodejs 休息服务,为此我使 server.js 具有以下几行:
app.get('/Attivita',(req,res)=>{
res.status(200);
con.query('Select * from attivita', function (err, result) {
if (err)
throw err;
res.setHeader('Access-Control-Allow-Origin', 'http://isaplomb.org')
res.send(result)
})
});
它会返回一个带有查询结果的 json,它是正确的,它可以工作,但是在表 Attività 中有一个名为 data 的列,它以日期格式存储日期。节点 js 返回一个日期时间值并更改日期的值:
存储在 db 中的数据:2018-02-24 从 nodejs 服务返回的数据:2018-02-23T23:00:00.000Z
我需要在 html 页面中显示此日期。
谁能帮我?
解决方案
查看您的问题,似乎 TimeZone(TZ) 导致日期更改。您的服务器和应用程序位于不同的时区。您可以将日期存储为 UTC 并根据客户端 TZ 在客户端进行转换,或者如果您想要一个特定的 TZ,则将 UTC 值转换为该 TZ。
服务器没有在数据行中存储 TZ 值,我们收到行时唯一的信息是“2018-02-24”
此外,客户端不知道哪个 TZ 服务器正在运行。将 TZ 传递给客户端,我认为这就是 node-mysql 正在做的事情。
推荐阅读
- android-studio - 如何使用 AIDL Remotecallback 安全地绑定和取消绑定?
- android - NavigationDrawer+TabView+edittext
- python - 将线性求解器限制为仅非负解python
- javascript - 用户在文件上传对话框上单击取消时出错
- javascript - Rails 管道中未包含新的 JavaScript 文件?
- python - Python,使用两条路径创建快捷方式
- sql-server - 在不同服务器上的两个 Microsft SQL Server 数据库之间更新表
- android - 在android中应用自定义视图
- c# - Unity Collision Remove then Add back
- python - 使用正则表达式查找页面中的所有时间戳