Laravel 修改时区,设置 timezone
Laravel 框架默认时区是 UTC。
UTC(Universal Time Coordinated),即协调世界时,又称世界统一时间,世界标准时间,国际协调时间,不属于任意时区。
初始使用 Laravel 框架时,一般会遇到时间少了 8 小时的问题,其原因是 Laravel 框架默认时区是 UTC,只需要将配置信息中的 timezone
设置到上海 Asia/Shanghai
就可以了。
最直接的方式,就是在 config/app.php
文件中修改,找到参数 'timezone'='UTC'
,将其修改为 'timezone'='Asia/Shanghai'
即可,代码如下:
/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/
'timezone' => 'Asia/Shanghai',
//或者'timezone' => 'PRC'
但这并不是最佳实践,不推荐。最佳实践应该是将时区的配置信息(timezone)存储在 .env
和 config/app.php
文件中,然后使用 config()
或者 env()
函数读取。解决方案为:
在 .env 文件中增加一行代码:
TIMEZONE=Asia/Shanghai
在 config/app.php
文件中设置,
'timezone' => env('TIMEZONE', 'UTC'); //默认UTC