Added week start

This commit is contained in:
Constantin Graf
2024-03-21 13:53:05 +01:00
parent fb04cff7c1
commit fc5b35661d
15 changed files with 364 additions and 67 deletions

View File

@@ -4,8 +4,11 @@ declare(strict_types=1);
namespace App\Service;
use App\Models\User;
use Carbon\CarbonTimeZone;
use DateTime;
use DateTimeZone;
use Illuminate\Support\Facades\Log;
class TimezoneService
{
@@ -19,6 +22,20 @@ class TimezoneService
return $tzlist;
}
public function getTimezoneFromUser(User $user): CarbonTimeZone
{
try {
return new CarbonTimeZone($user->timezone);
} catch (\Exception $e) {
Log::error('User has a invalid timezone', [
'user_id' => $user->getKey(),
'timezone' => $user->timezone,
]);
return new CarbonTimeZone('UTC');
}
}
/**
* @return array<string, string>
*/
@@ -37,4 +54,11 @@ class TimezoneService
{
return in_array($timezone, $this->getTimezones(), true);
}
public function getShiftFromUtc(CarbonTimeZone $timeZone): int
{
$timezoneShift = $timeZone->getOffset(new DateTime('now', new DateTimeZone('UTC')));
return $timezoneShift;
}
}