timezoneAbbreviatedName

This commit is contained in:
Benjamin Takats
2022-12-16 16:51:41 +01:00
parent 265f8c26d8
commit d2218029aa
4 changed files with 21 additions and 8 deletions

View File

@@ -17,14 +17,20 @@ class SetTimezoneMiddleware
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
if ( if ($request->user()
!collect($request->segments())->contains('nova')
&& $request->user()
&& $timezone = $request->user()->timezone && $timezone = $request->user()->timezone
) { ) {
config(['app.timezone' => $timezone]); config([
'app.timezone' => $timezone,
'app.user-timezone' => $timezone,
]);
return $next($request);
} }
config(['app.timezone' => 'Europe/Berlin']); config([
'app.timezone' => 'Europe/Berlin',
'app.user-timezone' => 'Europe/Berlin',
]);
return $next($request); return $next($request);
} }

View File

@@ -39,6 +39,10 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
*/ */
public function boot() public function boot()
{ {
config([
'app.user-timezone' => 'Europe/Berlin',
]);
parent::boot(); parent::boot();
Nova::mainMenu(function (Request $request) { Nova::mainMenu(function (Request $request) {
@@ -154,6 +158,7 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
}); });
Nova::userTimezone(function (Request $request) { Nova::userTimezone(function (Request $request) {
return $request->user()->timezone; return $request->user()->timezone;
}); });
} }

View File

@@ -8,19 +8,19 @@ class Carbon extends CarbonImmutable
{ {
public function asDate(): string public function asDate(): string
{ {
$dt = $this->timezone(config('app.timezone'))->locale('de'); $dt = $this->timezone(config('app.user-timezone'))->locale('de');
return str($dt->day)->padLeft(2, '0').'. '.$dt->monthName.' '.$dt->year; return str($dt->day)->padLeft(2, '0').'. '.$dt->monthName.' '.$dt->year;
} }
public function asTime(): string public function asTime(): string
{ {
return $this->timezone(config('app.timezone'))->locale('de') return $this->timezone(config('app.user-timezone'))->locale('de')
->format('H:i'); ->format('H:i');
} }
public function asDateTime(): string public function asDateTime(): string
{ {
$dt = $this->timezone(config('app.timezone'))->locale('de'); $dt = $this->timezone(config('app.user-timezone'))->locale('de');
return sprintf("%s.%s.%s %s (%s)", return sprintf("%s.%s.%s %s (%s)",
str($dt->day)->padLeft(2, '0'), str($dt->day)->padLeft(2, '0'),
str($dt->month)->padLeft(2, '0'), str($dt->month)->padLeft(2, '0'),

View File

@@ -73,6 +73,8 @@ return [
'timezone' => 'UTC', 'timezone' => 'UTC',
'user-timezone' => 'UTC',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Application Locale Configuration | Application Locale Configuration