【问题标题】:Laravel set dynamically timezone for one ControllerLaravel 为一个控制器动态设置时区
【发布时间】:2016-04-04 13:54:13
【问题描述】:

我正在 Laravel 上开发网站。我在config/app.php 中设置了默认时区,但我有一个部分必须显示有关用户时区的信息。是否有一个特定控制器可以选择使用用户时区?

【问题讨论】:

  • 你的问题有点不清楚。您可以执行 $user->created_at->setTimezone('America/New_York') 之类的操作,将日期从应用程序的时区转换为(可能是用户提供的)时区值。

标签: laravel timezone laravel-5.2


【解决方案1】:

您可以使用config() 助手在您的请求中的任何时候设置配置值。此更改仅影响该请求。

因此,在您的情况下,一种选择是将构造函数中的配置设置更新为您的控制器。然后,该控制器处理的任何请求都将使用更新后的时区设置。

class MyController extends Controller
{
    public function __construct()
    {
        config(['app.timezone' => 'America/Chicago']);
    }
}

如果需要更多全局或更精细的控制,您几乎可以将该语句移动到任何地方。

【讨论】:

    【解决方案2】:

    如果你想为每个用户显示当地时间并且你使用 Laravel 日期(碳),你可以这样做:

    if (Auth::check()) {
        $object->created_at->setTimezone(Auth::user->timezone)
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多