编程

Laravel 修改时区,设置timezone

2793 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)存储在 .envconfig/app.php 文件中,然后使用 config() 或者 env() 函数读取。解决方案为:

在.env文件中增加一行代码:

TIMEZONE=Asia/Shanghai

config/app.php 文件中设置,

​'timezone' => env('TIMEZONE', 'UTC'); //默认UTC