在一台服务器上,当我运行:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-05-30 16:54:29 |
+---------------------+
1 row in set (0.00 sec)
在另一台服务器上:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-05-30 20:01:43 |
+---------------------+
1 row in set (0.00 sec)
如果符合您的场景,您可以通过更改操作系统时区轻松做到这一点。
在Ubuntu系统中,使用此命令可以列出时区
sudo timedatectl list-timezones
如果需要修改操作系统的时区,需要同时执行该命令
timedatectl set-timezone America/New_York
检查操作系统时区,执行
date
然后重新启动MySQL
sudo service mysql restart
要在MySQL中检查时区,请登录并运行
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
如果有人正在使用GoDaddy共享主机,你可以尝试以下解决方案,为我工作。
当启动DB连接时,在我的PDO对象中设置time_zone命令,例如:
$pdo = new PDO($dsn, $user, $pass, $opt);
$pdo->exec("SET time_zone='+05:30';");
其中“+05:30”是印度时区。您可以根据需要更改。
在那之后;所有与日期和时间相关的MySQL进程都设置了所需的时区。
来源:https://in.godaddy.com/community/cPanel-Hosting/How-to-change-TimeZone-for-MySqL/td-p/31861