【问题标题】:Laravel changing timezone not reflecting the correct timeLaravel 更改时区未反映正确时间
【发布时间】:2017-09-26 10:21:34
【问题描述】:

我在config/app.php 将时区更改为Asia/Singapore,但是当我尝试执行date("Y-m-d H:i:s"); 时,结果仍然是UTC。

Laravel 中是否有任何东西可以覆盖我在 config/app.php 设置的时区?

【问题讨论】:

  • config/app.php 文件中执行此'timezone' => 'Asia/Singapore' 并执行php artisan cache:clearphp artisan view:clear
  • @HirenGohel 没用。
  • 运行php artisan config:cache
  • php artisan config:cache 命令对你有用吗??
  • @HirenGohel 是的,我如何将您标记为正确答案?

标签: php laravel laravel-5


【解决方案1】:

这样做:

'timezone' => 'Asia/Singapore'

config/app.php文件中运行这3条命令:

php artisan cache:clear

php artisan view:clear

php artisan config:cache

希望对你有帮助!!

【讨论】:

  • 当我运行最后一个命令 php artisan config:cache 时,我的辅助函数不起作用
  • 我遇到了同样的问题。
  • @ZionAdams:如果前 2 个命令运行并且问题已解决,则不需要最后一个命令。最后一个命令不是必需的。让我知道前 2 个命令是否运行。
  • 我们的系统已经投入生产数月了,我们遇到了日期时间解析问题,我们正在考虑将其设置为正确的时区。这样做有什么影响吗?
【解决方案2】:

将此添加到config/app.php 文件中:

'timezone' => 'Asia/Singapore'  

之后,运行以下命令:

 php artisan config:cache

【讨论】:

    【解决方案3】:

    至少在 Laravel 5.8 生成的应用程序骨架中,可能还有其他版本,config/app.php 中的时区设置是 'timezone' => 'UTC', 所以它会忽略.env文件中的APP_TIMEZONE

    所以放一个例如APP_TIMEZONE='Europe/Berlin' in .env 并将config/app.php 中的行修改为:

    'timezone' => env('APP_TIMEZONE', 'UTC')
    

    或者,当确定本地、登台和生产都在同一时区运行时 - 只需将 config/app.php 中的行更改为:

    'timezone' => 'Europe/Berlin',
    

    【讨论】:

      【解决方案4】:

      date() 函数 php 不会从 Laravel config/app.php 加载配置。要更改时区,您应该通过 date.timezone 参数上的 php.ini 更改它。更改后不要忘记重新启动您的apache。

      或者如果你不想更灵活,有Carbon 包。它有很多有用的函数来处理日期时间的操作。

      【讨论】:

      • 这是错误的。 Laravel 将正确设置时区,以便 date() 函数使用它。
      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 2020-05-02
      • 2010-09-22
      • 2020-08-04
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      相关资源
      最近更新 更多