我有一个 Node.js 服务器作为 API 服务器运行,用于我正在为一家公司开发的服务。
它连接的 MySQL 服务器存储事件开始的日期,插入工作完美,您可以从 MySQL Workbench 和命令行工具看到正确的日期。但是,当我从 Node.js 检索日期列时,输出比我当前所在的时区晚了一天,即使它与服务器和 MySQL 服务器是同一时区。
有什么想法吗?
<小时/>我还编写了一个在服务器上运行的小脚本以获取示例输出:
- 事件名称:艾丹生日
- 开始日期:2013 年 7 月 27 日星期六 19:00:00 GMT-0500 (CDT)
- 毫秒:1374969600000
- UTC:2013 年 7 月 28 日星期日 00:00:00 GMT
- 一月中的某天:27
- ISO 字符串:2013-07-28T00:00:00.000Z
- 区域设置字符串:2013 年 7 月 27 日星期六 19:00:00 GMT-0500 (CDT)
开始日期晚了一天,UTC 日期正好(应该是 7 月 28 日,这是 MySQL Workbench 显示的内容,也是最初插入的内容)。
最佳答案
除非它是很久以前发布的,否则我也遇到了同样的问题。我检测到问题:当删除日期时间中的时间部分时,MySQL 自动将小时设置为“00:00:00”。由于 UTC 时间设置不正确,减去了一个小时,所以在我的例子中是前一天的 23:00:00。再次删除时间部分,结果是前一天。 MySQL连接中需要设置时区。
关于JavaScript (Node.js)——从 MySQL 列中检索落后一天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683117/