Cakephp 马里亚布时区错了

Cakephp 马里亚布时区错了,cakephp,centos,timezone,mariadb,Cakephp,Centos,Timezone,Mariadb,显示全局变量,如“时区”返回: Variable_name | Value time_zone SYSTEM Local time: Fr 2020-09-25 20:24:14 CEST Universal time: Fr 2020-09-25 18:24:14 UTC RTC time: n/a Time zone: Host (CEST, +0200) 在Centos 7服务器上timedatectl返回: Variable_

显示全局变量,如“时区”
返回:

Variable_name | Value
time_zone       SYSTEM
      Local time: Fr 2020-09-25 20:24:14 CEST
  Universal time: Fr 2020-09-25 18:24:14 UTC
        RTC time: n/a
       Time zone: Host (CEST, +0200)
在Centos 7服务器上
timedatectl
返回:

Variable_name | Value
time_zone       SYSTEM
      Local time: Fr 2020-09-25 20:24:14 CEST
  Universal time: Fr 2020-09-25 18:24:14 UTC
        RTC time: n/a
       Time zone: Host (CEST, +0200)
将新行插入具有
DATETIME
类型和默认值
current\u timestamp()
的表中,此字段具有UTC时间[在本例中为2020-09-25 18:24:14,而不是2020-09-25 20:24:14]

我的问题:

我做错了什么?我知道如何设置时区,但是
系统
值应该可以,因为Centos 7服务器设置了正确的时区

更新

(一)

回答评论时,
选择@GLOBAL.time_zone、@SESSION.time_zone返回第一个
系统和第二个'+00:00'。我正在Plesk环境中的PHP下运行它

(二)

开始时,表中没有此DATETIME字段。当我将其与PMA一起添加时,插入的日期时间[因为该字段被定义为
notnull
]是正确的!只有当我运行
INSERT
语句时,它才会插入UTC时间。

多亏了,我才能找到问题。他的问题是什么
SELECT@@GLOBAL.time_zone,@@SESSION.time_zone返回让我走上正确的方向

首先,我在PMA中运行命令,该命令为
系统
返回。在PMA中插入行生成正确的时间。这只是我在CakePHP下运行的PHP脚本中的错误,然后我检查了
app_local.PHP
中的设置,确实有
UTC
作为
时区。将
时区
更改为
系统
修复了它

我该怎么说呢,MariaDB工作正常,由于我遇到这个问题时使用了默认的CakePHP
timezone
设置。现在我在问题中添加了
cakephp
标记,因为这是问题的原因。

多亏了,我可以找到问题。他的问题是什么
SELECT@@GLOBAL.time_zone,@@SESSION.time_zone返回让我走上正确的方向

首先,我在PMA中运行命令,该命令为
系统
返回。在PMA中插入行生成正确的时间。这只是我在CakePHP下运行的PHP脚本中的错误,然后我检查了
app_local.PHP
中的设置,确实有
UTC
作为
时区。将
时区
更改为
系统
修复了它


我该怎么说呢,MariaDB工作正常,由于我遇到这个问题时使用了默认的CakePHP
timezone
设置。我现在还添加了
cakephp
标记,因为这是问题的原因。

使用
SELECT@@global.time_zone,@@session.time_zone
?我认为问题是由于
mysql
数据库中缺少时区数据造成的。看见用
SELECT*FROM mysql.time\u zone检查是否有时区数据
@danilavershin是的,表是空的,但我真的不相信这是原因。
系统
返回正确的时间,不需要修改它。检查我的问题,我添加了第二次更新。@Danilavershin在PHP会话
+00:00
的第一次注释返回中选择
,这正是问题所在。我必须弄清楚如何在PHP会话中更改它。实际上,我会将服务器时区设置为UTC。从长远来看,这可以避免很多头痛。大多数PHP框架(就像您的cakephp一样)都是时区感知的。因此,在大多数情况下,“服务器时区=UTC”+“应用程序时区=您想要的”,将产生正确的结果
?我认为问题是由于
mysql
数据库中缺少时区数据造成的。看见用
SELECT*FROM mysql.time\u zone检查是否有时区数据
@danilavershin是的,表是空的,但我真的不相信这是原因。
系统
返回正确的时间,不需要修改它。检查我的问题,我添加了第二次更新。@Danilavershin在PHP会话
+00:00
的第一次注释返回中选择
,这正是问题所在。我必须弄清楚如何在PHP会话中更改它。实际上,我会将服务器时区设置为UTC。从长远来看,这可以避免很多头痛。大多数PHP框架(就像您的cakephp一样)都是时区感知的。因此,在大多数情况下,“服务器时区=UTC”+“应用程序时区=您想要的”,将产生适当的结果。