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