2017-06-14 59 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