Laravel Nova:模型时区中的DateTime



我希望Laravel Nova在基于模型的自定义时区中处理DateTime字段(以UTC存储在数据库中(,而不是在默认情况下在用户的时区中处理:

https://nova.laravel.com/docs/3.0/resources/date-fields.html#timezones

该字段用于显示美国各时区不同地点的活动开始时间。在用户的时区中显示它们是没有意义的,因为它们将使用位置过滤器进行排序或根据位置模型进行查看。

有人有解决方案来处理这个用例吗?

尝试这样做,在名为时区的用户表中创建新列。

Schema::table('users', function (Blueprint $table) {
$table->string('timezone')->nullable();
});

在用户资源创建时区字段中,如以下

Timezone::make('Timezone')
->default('yourtimezone'),

然后在novaServiceProvider中,在boot((中添加以下内容

Nova::userTimezone(function (Request $request) {
return $request->user()->timezone;
});

这允许您控制用户时区。一旦用户使用特定时区登录,他/她将能够在不同时区的不同位置创建事件。

最新更新