我想在UTC時區保存在mysql中,並使用America/Sao_Paulo時區使用PHP讀取。時區:Mysql保存UTC和PHP讀取美國/ Sao_Paulo
我使用YII框架。 它不工作的屬性,我怎麼能這樣做?
main.php:
'timezone' => 'America/Sao_Paulo',
'db'=>array(
...
'initSQLs'=>array("SET time_zone = '+00:00'"),
...
)
我想在UTC時區保存在mysql中,並使用America/Sao_Paulo時區使用PHP讀取。時區:Mysql保存UTC和PHP讀取美國/ Sao_Paulo
我使用YII框架。 它不工作的屬性,我怎麼能這樣做?
main.php:
'timezone' => 'America/Sao_Paulo',
'db'=>array(
...
'initSQLs'=>array("SET time_zone = '+00:00'"),
...
)
做到這一點在PHP代碼:
date_default_timezone_set('UTC');
現在PHP運行在UTC。這取決於你轉換到用戶當地時間,但你有一個共同點。
而在MySQL使用UTC_TIMESTAMP()
爲您的DATETIME
需要。無論MySQL設置如何,它都使用UTC時間,因此您不必再擔心。
你可以將這行代碼放在應用程序的index.php文件中,或者放在配置文件中 – SnIpY
試試這個你的mysql控制檯或GUI上:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
然後再次使用:
SET time_zone='America/Sao_Paulo';
您還可以通過這個改變:
SET time_zone = 'Brazil/West';
來源:http://blog.will.eti.br/2013/mysql-unknown-or-incorrect-time-zone-americasao_paulo/
這些字段的外觀喜歡?你是否保存時間戳或其他東西? – Jon
使用此配置,字段以UTC返回,不在正確的時區。 –
你正在以這種錯誤的方式去做,但沒有更多的信息就不可能提供具體的建議。即使代碼工作正常,這也不是一個好的解決方案。 – Jon