Laravel Nova 日期字段

2023-02-16 17:07 更新

時(shí)區(qū)

Nova 提供 2 種日期字段:Date 和 DateTime。正如你已經(jīng)猜到的,Date 字段不存儲時(shí)間信息,但 DateTime 字段存儲時(shí)間信息:

use Laravel\Nova\Fields\Date;
use Laravel\Nova\Fields\DateTime;

Date::make('Birthday')
DateTime::make('Created At')

時(shí)區(qū)

默認(rèn)情況下,Nova 用戶看到的日期總是以基于用戶瀏覽器區(qū)域信息的本地時(shí)區(qū)呈現(xiàn)。

此外,用戶可隨時(shí)以用戶所在本地時(shí)區(qū)設(shè)置日期。日期將被自動轉(zhuǎn)化為你的應(yīng)用程序 “服務(wù)器端” 的時(shí)區(qū),該時(shí)區(qū)由你的應(yīng)用程序 app 配置文件中的 timezone 選項(xiàng)定義。

自定義時(shí)區(qū)

有時(shí)你可能希望明確定義 Nova 用戶的時(shí)區(qū),而不是使用用戶瀏覽器的區(qū)域設(shè)置信息。例如,也許你的應(yīng)用程序允許用戶選擇用戶自己的時(shí)區(qū),這樣用戶即使在世界各地旅行也總能看到一致的日期時(shí)區(qū)。

為此,你可以使用 Nova::userTimezone 方法。通常,你應(yīng)該在你的應(yīng)用程序 NovaServiceProvider 中的 boot 方法中調(diào)用這個(gè)方法:

use Laravel\Nova\Nova;
use Illuminate\Http\Request;

/**
 * 引導(dǎo)任何應(yīng)用程序服務(wù)。
 *
 * @return void
 */
public function boot()
{
    Nova::userTimezone(function (Request $request) {
        return $request->user()->timezone;
    });
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號