视图层中的时区

时间:2017-08-29 14:25:33

标签: laravel model-view-controller timezone presentation-layer

我用' UTC'编写我的应用程序作为时区。我为每个用户都有一个timezone列。我将在表示层中使用此值。日期/时间输出和输入将使用它。

当没有当前用户时,我还将在视图层中显示日期和时间。我希望回退时区是应用程序时区。我希望每次都避免使用这样的逻辑:

$now = new Carbon();
if (!Auth::guest()) {
    $now->setTimezone(Auth::user()->timezone);
}

这一切终于引出了我的问题。在哪里/如何设置视图层时区的好地方?

我提供了自己的答案,但我正在寻找更好的解决方案,批评等。

1 个答案:

答案 0 :(得分:0)

在身份验证(登录)期间设置会话值...

Auth::login($user);
session(['timezone', $user->timezone]);

在视图层中使用它......

{{ \Carbon\Carbon::now()->setTimezone(session('timezone'))->format('h:i A T') }}