无法更改phpmyadmin的时区
我正在尝试向数据库中插入一些数据,其中表的列为无法更改phpmyadmin的时区,php,mysql,amazon-ec2,phpmyadmin,Php,Mysql,Amazon Ec2,Phpmyadmin,我正在尝试向数据库中插入一些数据,其中表的列为date,类型为timestamp,默认值为CURRENT\u timestamp 我尝试了以下方法来更改时区: 在php-5.6.ini文件中,修改了以下行: [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = America/Los_Angeles 保存文件并调用sud
date
,类型为timestamp
,默认值为CURRENT\u timestamp
我尝试了以下方法来更改时区:
在php-5.6.ini文件中,修改了以下行:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/Los_Angeles
保存文件并调用sudo服务httpd restart
以及sudo服务mysql restart
。我还想指出,如果ec2实例有任何效果,我正在使用它
我使用的是slim框架,所以我尝试在index.php
文件中调用date\u default\u timezone\u set('America/Los\u Angeles');
,仍然没有更改
无论我将时区设置为美洲还是亚洲,时钟总是落后一小时
还尝试了ini\u集('date.timezone','Asia/Singapore');
尝试在mySql工作台内调用
设置时区='America/New\u York'
,但返回#1298-未知或不正确的时区:
。因此,在终端内,我调用了mySql\u tzinfo to_sql/usr/share/zoneinfo
,这似乎做了一些事情,但实际上没有改变任何事情。仍然是相同的问题。ini设置不会更改mysql服务器的时区。它只更改apache服务器的时区。要更改mysql时区,请发出以下命令:
SET time_zone = 'America/New_York';
从mysql终端。这将自动更改从所有时间戳
字段获得的日期/时间
如果您想从php执行此操作,则不使用默认的时间戳
值,而是通过php传递值,如下所示:
$datetime = date('Y-m-d H:i:s');
并在
timestamp
列中插入$datetime
的值。似乎存在未知或不正确时区的问题,而不管输入的时区是什么,这是因为mysql\u tzinfo\u to\u sql
只生成一个sql脚本,然后需要捕获并加载到服务器,然后再加载到服务器可能需要重新启动,因为时区元数据查找已缓存。@Michael sqlbot如何“捕获并加载到服务器”mysql\u tzinfo\u到\u sql/usr/share/zoneinfo>load\u tz\u data.sql
然后将生成的load\u tz\u data.sql
文件导入到mysql
架构中。