diff --git a/composer.json b/composer.json index a16c084..5ab99f8 100644 --- a/composer.json +++ b/composer.json @@ -37,7 +37,7 @@ "require": { "php": "^8.2", "edalzell/forma": "^2.0 || ^3.0", - "nesbot/carbon": "^2.0", + "nesbot/carbon": "^2.0 || ^3.0", "rlanvin/php-rrule": "^2.3.1", "spatie/calendar-links": "^1.0", "spatie/icalendar-generator": "^2.3.3", diff --git a/src/Modifiers/IsEndOfWeek.php b/src/Modifiers/IsEndOfWeek.php index bd9f5ab..d84e4ea 100755 --- a/src/Modifiers/IsEndOfWeek.php +++ b/src/Modifiers/IsEndOfWeek.php @@ -2,6 +2,8 @@ namespace TransformStudios\Events\Modifiers; +use Carbon\CarbonImmutable; +use Composer\InstalledVersions; use Illuminate\Support\Carbon; use Statamic\Modifiers\Modifier; @@ -9,6 +11,12 @@ class IsEndOfWeek extends Modifier { public function index($value, $params, $context) { - return Carbon::parse($value)->dayOfWeek == now()->endOfWeek()->dayOfWeek; + $date = CarbonImmutable::parse($value); + + if (InstalledVersions::getVersion('nesbot/carbon') >= '3') { + $date->isSameDay($date->locale(Carbon::getLocale())->startOfWeek()); + } + + return $date->dayOfWeek == now()->endOfWeek()->dayOfWeek; } } diff --git a/src/Modifiers/IsStartOfWeek.php b/src/Modifiers/IsStartOfWeek.php index a5bdf26..5f32daa 100755 --- a/src/Modifiers/IsStartOfWeek.php +++ b/src/Modifiers/IsStartOfWeek.php @@ -2,6 +2,8 @@ namespace TransformStudios\Events\Modifiers; +use Carbon\CarbonImmutable; +use Composer\InstalledVersions; use Illuminate\Support\Carbon; use Statamic\Modifiers\Modifier; @@ -9,6 +11,12 @@ class IsStartOfWeek extends Modifier { public function index($value, $params, $context) { - return Carbon::parse($value)->dayOfWeek == now()->startOfWeek()->dayOfWeek; + $date = CarbonImmutable::parse($value); + + if (InstalledVersions::getVersion('nesbot/carbon') >= '3') { + $date->isSameDay($date->locale(Carbon::getLocale())->startOfWeek()); + } + + return $date->dayOfWeek == now()->startOfWeek()->dayOfWeek; } } diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index 47f8bc8..1c60be4 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -2,6 +2,7 @@ namespace TransformStudios\Events; +use Composer\InstalledVersions; use Edalzell\Forma\Forma; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Artisan; @@ -56,6 +57,10 @@ private function bootCarbon(): self { Carbon::setLocale(Site::current()->locale()); + if (InstalledVersions::getVersion('nesbot/carbon') >= '3') { + return $this; + } + /* Using these deprecated methods because I couldn't figure out another way to have the weekstart set based on the current locale.