从MySQL时间戳列更改时间

时间:2016-05-30 13:24:24

标签: php mysql timezone

我目前正在解决PHP服务器位于欧洲但数据库服务器位于墨西哥的问题。

在我的应用中,时区设置为:

date_default_timezone_set('America/Mexico_City');

应用程序没有设置MySQL时区,因此它似乎使用系统时区America/Mexico_City

奇怪的是,当我查询MySQL中的时区专栏时,它有时会使用Mexio中的时间和有时在欧洲的时间给出日期。

我知道mysql将时间戳存储为一个整数并将它们作为日期字符串返回,我可以通过使用$db->query("SET time_zone = 'America/Mexico_City'");

显式设置数据库连接正在使用的时区来解决这个问题。

但我的问题是,为什么它有时会将时间戳作为日期字符串返回欧洲时间,有时会在墨西哥时间返回日期字符串?该应用程序不使用任何类型的特定缓存。

1 个答案:

答案 0 :(得分:0)

可能您的问题与这些问题有关。

Having Timezone problems with PHP and MySQL

How do I set the time zone of MySQL?

请注意他们如何使用SET GLOBAL time_zone = "your_time_zone"SET SESSION time_zone = "your_time_zone"

希望有所帮助:)