我使用以下代码通过 PHP 获取的时区是 UMT
:
$timezone = date_default_timezone_get(); // UTC
echo "The current server timezone is: " . $timezone."<br />";
echo date('Y-m-d H:i:s'); // 2015-04-10 00:08:05
MySQL 为我提供了 pkt
作为我的系统时区和时间 2015-04-10 05:14:38
SELECT @ @system_time_zone // pkt
SELECT NOW( ) , UNIX_TIMESTAMP( NOW( ) ) // 2015-04-10 05:14:38
由于这个时差,我无法使用 PHP 从数据库中获取正确的记录。
如何同步 PHP 和 MySQL 时区,以便两者返回相同的时间?
是否可以使用 PHP 更改 MySQL 的时区?
我已经尝试过this ,但我收到此错误:
Warning: PDO::__construct(): The server requested authentication method unknown to the client
最佳答案
可以使用mysql的功能
CONVERT_TZ(timestamp_field,[mysql_timezone],[php_timezone])
或者在 php 中更改服务器时区:
date_default_timezone_set([timezone]);
或者更改mysql时区:
SET GLOBAL time_zone = [timezone]
该语句将更改 mysql 的时区,但如果重新启动服务器,它将使用默认时区。 您可以在启动时设置默认时区,链接如下: Set default timezone mysql
希望有帮助
关于php - 同步 PHP 和 MySQL 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29551308/