编程

Laravel 修改时区,设置timezone

2330 2023-01-08 03:14:39

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