我想在 UTC 时区保存在 mysql 中,并使用 America/Sao_Paulo 时区使用 PHP 阅读。
我使用 YII 框架。它不工作的财产,我怎么能这样做?
主.php:
'timezone' => 'America/Sao_Paulo',
'db'=>array(
...
'initSQLs'=>array("SET time_zone = '+00:00'"),
...
)
在你的 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/
在您的 PHP 代码中执行此操作:
date_default_timezone_set('UTC');
现在 PHP 在 UTC 中运行。转换为用户当地时间取决于您,但您有一个共同点。
并在 MySQL中UTC_TIMESTAMP()
满足您的DATETIME
需求。无论 MySQL 设置如何,它都使用 UTC 时间,因此您无需再担心。