提问者:小点点

服务器得时间戳与本地得时间戳不同


我在mysql数据库的一个表中有一个类型为datetime的createdAt列和一个类型为timestamp的updatedAt列。 数据库中的日期是正确的。 我查询数据库并在React中显示值,当从本地xampp服务器运行时,它们会正确显示。

我们的beta和live站点都托管在一个外部的debian-jessie服务器上,在这两个服务器上,React中显示的更新的at是在一个完全不同的时区,有7个小时的差异。 如果我在服务器上运行“date”,它会显示正确的时区,而且我知道服务器是在我们的时区中托管的。

如果真的很重要,我们使用typeorm/graphql/type-graphql来查询数据,并使用Apollo来让它做出反应。

有人知道为什么会发生这种情况,或者有什么解决办法吗?


共1个答案

匿名用户

您的本地时区可能与服务器的MySQL时区不同。 理想情况下,MySQL时区应该与您自己的时区相同,以便更高效地处理数据。

您的时区可能设置在MySQL中的以下位置之一:

[mysqld]节中的my.cnf文件中

default-time-zone='+00:00'

global.time_zone变量

要查看它们的设置值,请执行以下操作:

SELECT @@global.time_zone;

若要为其设置值,请使用以下任一项:

SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';

@@session.time_zone变量

SELECT @@session.time_zone;

要设置它,请使用以下任一项:

SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";