PHP和MySQL之间的时间差



我搜索了许多链接,但到目前为止,我找不到解决我的问题的解决方案。

我在Go Daddy上有一个网络托管,它正在返回PHP和MySQL的不同时间:

  • php dateTime => 13/02/2018 17:10:50
  • mysql dateTime => 13/02/2018 12:10:50

我已经将PHP时区设置为:

date_default_timezone_set('America/Sao_Paulo');

有人会知道一种调整MySQL时间的方法吗?

谢谢

我在此链接上找到了我的解决方案:

https://www.sitepoint.com/synchronize-php-mysql timezone-configuration/

实际上,我同步了我的PHP和MySQL时区。这是代码:

define('TIMEZONE', 'America/Sao_Paulo');
date_default_timezone_set(TIMEZONE);
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
// I already have a connection function
$return = pdo_mysql("SET time_zone='$offset';");

这是因为MySQL不会在DATETIME类型上存储时区信息。

可能您的PHP脚本使用UTC 时区发送ISO8601日期字符串,因此MySQL忽略了时区,而仅存储UTC。

为避免这种情况,您可以使用跟踪时区的TIMESTAMP类型。

相关内容

  • 没有找到相关文章

最新更新