Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js mySQL NOW()给出了错误的日期_Javascript_Php_Node.js_Datetime - Fatal编程技术网

Javascript node.js mySQL NOW()给出了错误的日期

Javascript node.js mySQL NOW()给出了错误的日期,javascript,php,node.js,datetime,Javascript,Php,Node.js,Datetime,我有一个web应用程序,它混合运行MySQL、PHP和node.js。MySQL和PHP为我报告了正确的时间,但我似乎不知道如何让node.js遵守 Mysql Now()结果 另外,从运行NOW()的PHP代码执行的SQL查询给出了上面所示的日期 但是,当node在SQL查询中执行NOW()时,我得到的日期是未来3小时 我环顾四周,似乎找不到解决办法。我已尝试如下设置节点的环境变量 process.env.TZ = 'America/New_York'; 但这似乎没有什么不同。我的节点脚本不

我有一个web应用程序,它混合运行MySQL、PHP和node.js。MySQL和PHP为我报告了正确的时间,但我似乎不知道如何让node.js遵守

Mysql Now()结果

另外,从运行NOW()的PHP代码执行的SQL查询给出了上面所示的日期

但是,当node在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中。然后在检索时,按照您的意愿格式化日期。

您的“toLocaleString”调用似乎正在按您的预期输出日期。读取javascript中的日期-它们始终存储在UTC中。
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