Laravel 5.8 - 时区环境变量
Posted
技术标签:
【中文标题】Laravel 5.8 - 时区环境变量【英文标题】:Laravel 5.8 - Timezone environment variable 【发布时间】:2021-12-14 16:22:51 【问题描述】:我有一个问题,我似乎无法让 Laravel 获取系统范围的 APP_TIMEZONE 环境变量,我不确定使用 php-fpm 是否会影响。
当我将它添加到 .env 时,使用时区正确设置了 DateTime
当我删除它时,DateTime 现在使用 Laravel app.php 中的 UTC 默认 ('timezone' => env('APP_TIMEZONE', 'UTC'))
当我删除它时,将APP_TIMEZONE
添加到/etc/environment
,重新启动,printenv 返回正确的变量,Tinker 也是如此(但我认为它使用的是 CLI 而不是 FPM 进程)并在 Tinker 中实例化日期显示正确时区,但是运行我的应用程序显示日期使用默认值 UTC,这意味着它没有获取系统范围的变量(我在每次更改时都清除了缓存)
感谢您的帮助
【问题讨论】:
【参考方案1】:config/app 文件中的时区似乎设置为 env() 函数。 这就像说“嘿去看看 .env 文件,看看你是否设置了 APP_TIMEZONE。如果你不使用 UTC。谢谢。”
您可以在 config/app.php 文件中注释掉该行,我相信系统默认值,在这种情况下是您的环境变量,应该优先。
【讨论】:
以上是关于Laravel 5.8 - 时区环境变量的主要内容,如果未能解决你的问题,请参考以下文章
vue项目(vue-cli)配置环境变量和打包时区分开发测试生产环境
转帖linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York