Laravel时区设置未生效

时间:2018-03-07 16:55:07

标签: php mysql laravel datetime timezone

我正在使用在config/app.phpconfig/database.php文件中将时区设置为 UTC 的Laravel应用程序,并且MySQL服务器上的时区设置为< strong> America / Denver 并且无法更改,因为我们有多个使用该服务器的应用程序。

问题是,在保存带时间戳的新模型时,{strong}美国/丹佛时区设置了created_at / updated_at,当我需要它们使用时间戳时 UTC 时区。我玩了很多,并尝试了以下没有运气:

确保时区设置未按建议的herehere错误地缓存:

$ php artisan cache:clear    
$ php artisan view:clear
$ php artisan config:cache

按照建议的herehere以及here概述我的PHP脚本时区为 UTC

date_default_timezone_set('UTC')

根据建议的here将MySQL会话时区设置为 UTC 并概述here

DB::statement("SET time_zone='UTC';")
DB::select('SELECT @@global.time_zone, @@session.time_zone;')

我没有想法。任何建议都会很棒!

1 个答案:

答案 0 :(得分:0)

...好的

看来我的日期确实存储在 UTC 中,但在本地时间显示 ...我不期待这种行为,因为我来自SQL Server背景从来没有遇到过这个。我通过创建一些模型记录,然后使用 UTC 选择它们并接收到正确的记录来测试实际情况。似乎很好,只是有点混乱。如果你有一个解释为什么MySQL将以UTC格式存储日期时间但是在本地服务器时间显示它们,这将是有帮助的!

谢谢!