Comment comparer deux dates avec Laravel Carbon ?
Arthur Monney
@mckenziearts
Shalom jeune padawan, dans ce tutoriel nous allons voir comment comparer 2 dates sur Laravel en utilisant Carbon.
Carbon est la classe PHP utilisée par défaut par tous les champs de type date
sur Laravel. Dans ce tutoriel je vais vous présenter quelques fonctions qui vous permettrons de facilement comparer les dates sur Laravel.
Vous pouvez comparer des dates avec les fonctions suivantes qui vous aideront à vérifier quelle date est plus grande, plus petite ou égale à l'autre, alors voyons un exemple par un :
-
eq()
equals -
ne()
not equals -
gt()
greater than -
gte()
greater than or equals -
lt()
less than -
lte()
less than or equals
eq()
la fonction d'égalité
Cette fonction permet de savoir si 2 dates sont égales
> $date1 = now(); Illuminate\Support\Carbon @1683094025 {#7148 date: 2023-05-03 07:07:05.724047 Africa/Douala (+01:00),} > $date2 = now()->addDay();Illuminate\Support\Carbon @1683180428 {#7145 date: 2023-05-04 07:07:08.735584 Africa/Douala (+01:00),} > $result = $date1->eq($date2);false
Vous pouvez aussi l'utiliser avec des informations qui viennent directement de votre model, par exmple pour savoir si l'acticle sur lequel vous êtes vient d'être publié, etc
$article = Post::whereSlug($slug);$article->published_at->eq(now())
Ou vous pouvez utiliser des dates spécifiques pour faire votre comparaison
$date1 = Carbon::createFromFormat('m/d/Y H:i:s', '03/05/2023 10:20:00');$date2 = Carbon::createFromFormat('m/d/Y H:i:s', '03/05/2023 10:20:00'); $result = $date1->eq($date2);dd($result);
Résultat
bool(true)
ne()
la fonction d'inégalité
Cette fonction permet de savoir si 2 dates ne sont pas égales, et elle fonction dans le principe exactement comme la fonction eq()
> $date1 = now(); Illuminate\Support\Carbon @1683094025 {#7148 date: 2023-05-03 07:07:05.724047 Africa/Douala (+01:00),} > $date2 = now()->addDay();Illuminate\Support\Carbon @1683180428 {#7145 date: 2023-05-04 07:07:08.735584 Africa/Douala (+01:00),} > $result = $date1->ne($date2);true
gt()
la fonction plus grande que
Permet de savoir si la première date est supérieure à la 2e
> $date1 = now(); Illuminate\Support\Carbon @1683094025 {#7148 date: 2023-05-03 07:07:05.724047 Africa/Douala (+01:00),} > $date2 = now()->addDay();Illuminate\Support\Carbon @1683180428 {#7145 date: 2023-05-04 07:07:08.735584 Africa/Douala (+01:00),} > $result = $date1->gt($date2);false
gte()
la fonction supérieure ou égale
Permet de savoir si la première date est supérieure ou égale à la 2e
> $date1 = now(); Illuminate\Support\Carbon @1683094025 {#7148 date: 2023-05-03 07:07:05.724047 Africa/Douala (+01:00),} > $date2 = now()->addDay();Illuminate\Support\Carbon @1683180428 {#7145 date: 2023-05-04 07:07:08.735584 Africa/Douala (+01:00),} > $result = $date1->gte($date2);false
lt()
la fonction inférieure à
Permet de savoir si la première date est inférieure à la 2e
> $date1 = now(); Illuminate\Support\Carbon @1683094025 {#7148 date: 2023-05-03 07:07:05.724047 Africa/Douala (+01:00),} > $date2 = now()->addDay();Illuminate\Support\Carbon @1683180428 {#7145 date: 2023-05-04 07:07:08.735584 Africa/Douala (+01:00),} > $result = $date1->lt($date2);true
lte()
la fonction inférieure ou égale à
Permet de savoir si la première date est inférieure ou égale à la 2e
> $date1 = now(); Illuminate\Support\Carbon @1683094025 {#7148 date: 2023-05-03 07:07:05.724047 Africa/Douala (+01:00),} > $date2 = now()->addDay();Illuminate\Support\Carbon @1683180428 {#7145 date: 2023-05-04 07:07:08.735584 Africa/Douala (+01:00),} > $result = $date1->lte($date2);true
Nous voici à la fin de ce petit tutoriel, nous avons passé en revu juste quelques fonctions parmi les plus utilisées pour comparer les dates mais vous pouvez avoir l'ensemble des méthodes pour comparer vos date sur Laravel avec Carbon via ce lien de comparaison sur la documentation de Carbon.
J'espère que ce tutoriel vous a été utile. N'hésitez pas à partager et que la paix soit avec vous. Shalom !
Arthur Monney
@mckenziearts
Fullstack Designer - Laravel & React Developer. Laravel Cameroon Organizer @laravelcm | @shopperlabs