我有一个混合运行MySQL、PHP和node.js的web应用程序。MySQL和PHP报告的时间对我来说是合适的,但我似乎不知道如何让node.js遵守。
Mysql Now()结果
MariaDB [seo]> select NOW();
+---------------------+
| NOW() |
+---------------------+
| 2014-10-20 22:51:53 |
此外,从我运行NOW()的PHP代码中执行的SQL查询给出了上面所示的日期。
然而,当节点从SQL查询中执行NOW()时,我会得到一个未来3小时的日期。
我环顾四周,似乎找不到解决办法。我已经尝试为节点设置环境变量,如下所示。。
process.env.TZ = 'America/New_York';
但这似乎没有什么不同。我的节点脚本不是永久运行的,它们只是通过命令/shell脚本调用的。
var d = new Date();
var n = d.toLocaleString();
var j = d.toISOString();
var l = d.toUTCString();
console.log('toLocaleString(): ' + n + ', toISOString(): ' + j + ', toUTCString(): ' + l);
给出输出:
toLocaleString(): Mon Oct 20 2014 22:51:53 GMT-0400 (EDT), toISOString(): 2014-10-21T02:51:53.489Z, toUTCString(): Tue, 21 Oct 2014 02:51:53 GMT
我真的不知道他们为什么到处都是。不知道该配置什么,因为我在节点中看到的关于日期的答案到处都是。当在node(使用sequelize)中运行SQL查询时,我的主要困惑是NOW()插入了一个休息3小时的日期。无论如何,如果有人能帮忙,我将不胜感激。
始终确保您的日期存储在UTC中。然后在检索时根据您的意愿设置日期格式。