2017-06-14 78 views
0

我试图将一些数据插入数据库,其中的表格有一列date,其类型为timestamp,默认值为CURRENT_TIMESTAMP无法更改phpmyadmin的时区

我已经尝试下面的方法来改变时区:

里面的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 service httpd restart以及sudo service mysql restart 。我还想指出我“米使用EC2实例,如果有任何影响。

我使用超薄框架,所以我已经打过电话date_default_timezone_set('America/Los_Angeles');index.php文件中,仍然没有改变。

时钟始终是一个小时的背后,是否我的时区设置为美国或亚洲。

也试过ini_set('date.timezone', 'Asia/Singapore');

打过电话SET time_zone = 'America/New_York' MySQL的工作台内,但返回#1298 - Unknown or incorrect time zone:。因此,在终端我叫mysql_tzinfo_to_sql /usr/share/zoneinfo似乎在做某事,但实际上并没有改变任何事情。仍然是相同的问题

回答

0

php.ini设置不会更改您的mysql服务器的时区。它仅更改apache服务器的时区。要更改mysql时区问题,请使用以下命令:

SET time_zone = 'America/New_York'; 

from mysql terminal。这将自动更改从所有TIMESTAMP字段中获得的日期/时间。

如果你想从PHP这样做,那么代替默认timestamp值从PHP传递值,如:

$datetime = date('Y-m-d H:i:s'); 

timestamp柱插入的$datetime值。

+0

似乎有'未知或不正确的时区'的问题,不管时区是否输入 – luke

+0

这是因为'mysql_tzinfo_to_sql' **只生成一个SQL脚本**,然后您需要捕获并加载到服务器,然后服务器可能需要重新启动,因为时区元数据查找被缓存。 –

+0

@ Michael-sqlbot如何“捕获并加载到服务器”? – luke