Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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日期时间值可靠地解释为UTC_Javascript_Mysql_Node.js_Datetime_Mysql2 - Fatal编程技术网

Javascript 在Node.js代码中将MySQL日期时间值可靠地解释为UTC

Javascript 在Node.js代码中将MySQL日期时间值可靠地解释为UTC,javascript,mysql,node.js,datetime,mysql2,Javascript,Mysql,Node.js,Datetime,Mysql2,我有一个恼人的问题,同一个MySQLdatetime值在我的开发人员环境和测试环境中的解释不同 在MySQL数据库中,它的存储方式如下(在两种环境中) 2021-04-07 04:30:21 这里没有时区信息(例如ISO-8601表示法)。因此,我认为应由客户机决定此存储日期/时间的时区 js代码使用库与数据库接口 在测试环境中,读取上述日期/时间可将其正确调整为本地时间: 2021年4月7日星期三14:30:21 GMT+1000(澳大利亚东部标准时间) 但是,在我的开发环境中,日期/时间值保

我有一个恼人的问题,同一个MySQL
datetime
值在我的开发人员环境和测试环境中的解释不同

在MySQL数据库中,它的存储方式如下(在两种环境中)

2021-04-07 04:30:21

这里没有时区信息(例如ISO-8601表示法)。因此,我认为应由客户机决定此存储日期/时间的时区

js代码使用库与数据库接口

在测试环境中,读取上述日期/时间可将其正确调整为本地时间:

2021年4月7日星期三14:30:21 GMT+1000(澳大利亚东部标准时间)

但是,在我的开发环境中,日期/时间值保持不变,但被错误地解释为本地时区中的日期/时间:

2021年4月7日星期三04:30:21 GMT+1000(澳大利亚东部标准时间)

我不确定问题出在哪里。可能测试服务器的配置与我的开发环境不同。你知道问题出在哪里吗

进一步信息

MySQL表定义

CREATE TABLE `payments` (
  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `amount` decimal(8,2) NOT NULL DEFAULT 0.00,
  `payment_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
用于读取值的JavaScript代码的精简版本:

api_helpers.pool.execute("SELECT * FROM `payments`",
    [],
    function (err, payments) {
        callback(err, payments);
    }
);
其中,
api\u helpers.pool
是通过mysql2
createPool
函数创建的池


如果我随后循环查看
付款
并执行
控制台.log(付款.payment\u日期)它打印出如上所述的错误日期。

请显示数据库表的定义和使用的JavaScript代码。@NineBerry-我编辑了文章以添加此信息。请参阅