我用' UTC'编写我的应用程序作为时区。我为每个用户都有一个timezone
列。我将在表示层中使用此值。日期/时间输出和输入将使用它。
当没有当前用户时,我还将在视图层中显示日期和时间。我希望回退时区是应用程序时区。我希望每次都避免使用这样的逻辑:
$now = new Carbon();
if (!Auth::guest()) {
$now->setTimezone(Auth::user()->timezone);
}
这一切终于引出了我的问题。在哪里/如何设置视图层时区的好地方?
我提供了自己的答案,但我正在寻找更好的解决方案,批评等。
答案 0 :(得分:0)
在身份验证(登录)期间设置会话值...
Auth::login($user);
session(['timezone', $user->timezone]);
在视图层中使用它......
{{ \Carbon\Carbon::now()->setTimezone(session('timezone'))->format('h:i A T') }}