javascript - MySQL DateTime 意外行为

标签 javascript mysql node.js datetime postman

我的表中有一个 DATETIME 字段,该字段的显示方式与我返回的内容不同。

为了理解,以下是我在 API 中返回的确切对象字段:

enter image description here

但是,当我使用 PostMan 并查看结果时,时间正在从我返回的时间更改为:

enter image description here

我不明白发生了什么事。我试图将 DATETIME 作为 UTC 时间存储在数据库中,然后将其发送到客户端,客户端将其转换为本地时间。

以下是 DATETIME 日期在数据库中的样子: enter image description here

最佳答案

您没有以 UTC 时间存储日期。 “GMT-0400 (EDT)”表示它们存储在东部时间。其他结果中的 Z 表示 UTC(或 Zulu)时间,根据此规范:http://www.ietf.org/rfc/rfc3339.txt

我希望您的 MySQL 安装将默认时区设置为您的机器所在的时区 ( https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html ),因此当您添加时间而不指定时区时,会假定它位于默认时区。然后在您的回复中将其转换为 UTC,时间增加四个小时。

您应该在向数据库添加信息时指定时区,和/或更改数据库的默认时区。还可能有另一层“有助于”更改内容,具体取决于您用于访问数据库的 API,因此如果有有关 API 的相关信息,您可以将其添加到您的问题中。

关于javascript - MySQL DateTime 意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37842429/

相关文章:

JavaScript 比较两个数组

javascript - 两次包含 Prototype.js 会导致 IE7 中发生冲突

Javascript、CSS、jQuery - 我的 Canvas 移动到了不该移动的地方

mysql - 为什么 NHibernate SchemaUpdate 在 MySQL 中比在 MS SQL Server 中慢得多

javascript - 使用 webpack-dev-server 启动时,Docker 容器未按预期发布端口

node.js - 使用 MarkLogic Node API,我可以通过 LDAP 进行身份验证吗?

javascript - 我可以在常规 JS 中监听 AngularJS 中抛出的事件吗(在 Angular 之外?)

mysql - 在MySQL中对DATE查询进行差分

PHP + SQL 成绩簿更新多行

javascript - 无法让我的 Node.js 服务器监听