-
app/Traits/HasTimezone.php
Open in GitHubuse Carbon\CarbonImmutable; use Carbon\FactoryImmutable as Factory; trait HasTimezone { public function getCarbonSettings(): array { return [ 'locale' => app()->getLocale(), 'timezone' => $this->timezone ?? config('app.timezone'), ]; } public function getCarbonFactory(): Factory { return new Factory($this->getCarbonSettings()); } public function now(): CarbonImmutable { return $this->getCarbonFactory() ->now($this->getCarbonSettings()['timezone']); } public function today(): CarbonImmutable { return $this->getCarbonFactory() ->today(); } public function dateToApp(string|CarbonImmutable $date): CarbonImmutable { return $this->getCarbonFactory() ->parse($date) ->setTimezone(config('app.timezone')); } public function dateFromApp(string|CarbonImmutable $date): CarbonImmutable { return CarbonImmutable::parse($date) ->setTimezone($this->timezone ?? config('app.timezone')) ->settings($this->getCarbonSettings()); } }
-
app/Models/User.php
Open in GitHubuse App\Traits\HasTimezone; class User extends Authenticatable implements ExistsInSis { use HasTimezone; // ... }
-
app/Models/School.php
Open in GitHubuse App\Traits\HasTimezone; class School extends Model implements ExistsInSis { use HasTimeSlots; // ... }