我正在开发一个 Laravel 应用程序,该应用程序在 config/app.php
和 config/database.php
中将时区设置为 UTC> 文件,并且 MySQL 服务器上的时区设置为 America/Denver 并且无法更改,因为我们有多个应用程序使用该服务器。
问题是,当保存带有时间戳的新模型时,created_at
/updated_at
是在 America/Denver 时区设置的,当我需要他们使用 UTC 时区。我玩了很多次,但没有成功尝试以下方法:
确保时区设置没有按照建议错误地缓存 here和 here :
$ php artisan cache:clear
$ php artisan view:clear
$ php artisan config:cache
按照建议将我的 PHP 脚本时区设置为 UTC here和 here并概述here :
date_default_timezone_set('UTC')
按照建议将 MySQL session 时区设置为 UTC here并概述here :
DB::statement("SET time_zone='UTC';")
DB::select('SELECT @@global.time_zone, @@session.time_zone;')
我没主意了。任何建议都会很棒!
最佳答案
好吧...
看来我的日期确实存储在 UTC 中,但显示为本地时间...我没有预料到这种行为,因为我来自 SQL Server 背景并且以前从未遇到过这种情况。我通过创建一些模型记录,然后使用 UTC 选择它们,并收到正确的记录来测试事实是否如此。看起来不错,只是有点困惑。如果您能解释为什么 MySQL 会以 UTC 存储日期时间,但以本地服务器时间显示它们,那将会很有帮助!
谢谢!
关于php - Laravel 时区设置未生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49157335/