Utiliser la lib Carbon

La gestion des dates peut devenir pénible, peu importe le langage utilisé. Heureusement il existe des librairies comme « Carbon », pour simplifier cette gestion.

Carbon et la gestion des dates

En 1er vous devez installer la lib Carbon :

composer require nesbot/carbon

Vous pouvez sur votre objet Carbon, chaîner les méthodes, pour obtenir le prochain lundi + 14 jours, par exemple :

echo (new Carbon("next monday"))->modify('+14 days');

Ou cumuler des demandes :
Ici le lundi de la semaine prochaine + 5h, +10 minutes et -10 secondes.
Ex : 2021-01-04 05:09:50.

echo (new Carbon("monday next week +5 hours +10 minutes -10 seconds"));

Ou indiquer qu’on désire le 1er jour de Janvier (de cette année) + 7 jours :
(ci-dessous : 2021-01-08 00:00:00)

echo (new Carbon('first day of january this year'))->modify('+7 days');

On peut aussi tester qu’une date réponde à certain(s) critère(s) :
(ci-dessous, qu’une date est bien pour la semaine prochaine)
Cf doc pour d’autres exemples : https://carbon.nesbot.com/docs/#api-comparison

$dt = Carbon::now()->addWeek(1);
if ($dt->isNextWeek()) {
  echo "semaine prochaine";
} else {
  echo "Pas semaine prochaine";
}

On peut aussi ajouter/soustraire des siècles, années, trimestres, mois, jours, semaines, heures, minutes, secondes, etc … :

$dt = CarbonImmutable::create(2021, 1, 31, 0);
echo $dt->addDays(3)."<br>"; // 2021-02-03 00:00:00
echo $dt->subDays(3);        // 2021-01-28 00:00:00

Mais encore

  • Calculer la différence entre 2 dates.
  • Ajuster la timezone de votre date.
  • Changer le format de la date (ex : Y-m-d, d/m/Y, …).
  • Utiliser des rendus plus compréhensible (1 mois avant, 5 jours après, il y a 3 semaines, 50 minutes après, …).
  • Et bien plus encore.

Source :

Michael

Développeur / intégrateur, travaillant en agence web depuis 2005, je viens à présent vous proposer de venir découvrir mes créations personnelles de plugins / themes pour le CMS Wordpress & Prestashop, quelques solutions en mode SAAS & un peu d'actualité web ( / Twitter).

Vous aimerez aussi...