Travail avec les dates en PHP : aperçu complet des bibliothèques populaires

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travail avec les dates en PHP : bibliothèques et outils



Le travail avec les dates et l'heure est l'une des tâches les plus courantes en développement web. PHP dispose d'une classe intégrée DateTime, mais ses fonctionnalités sont souvent insuffisantes pour des opérations complexes : calcul de la différence de temps, formatage tenant compte de la locale, gestion des fuseaux horaires. Des bibliothèques spécialisées viennent à la rescousse. Dans cet article, nous analyserons les meilleurs outils pour travailler avec les dates en PHP.



1. La classe intégrée DateTime

Avant de passer aux bibliothèques tierces, il convient de rappeler la solution native — la classe DateTime. Elle est disponible en PHP depuis la version 5.2 et offre des fonctionnalités de base :

  • Création d'objets date et heure
  • Formatage (via format())
  • Modification de la date (via modify())
  • Gestion des fuseaux horaires (DateTimeZone)
  • Comparaison de dates

Exemple d'utilisation :

<?php$date = new DateTime('2024-12-31');$date->modify('+1 day');echo $date->format('Y-m-d'); // 2025-01-01?>

Cependant, DateTime présente des inconvénients : absence de méthodes pratiques pour travailler avec les intervalles, difficultés avec les chaînages d'appels et prise en charge limitée des formats lisibles par l'homme.



2. Carbon — la bibliothèque la plus populaire

Carbon est une extension de DateTime qui ajoute une API pratique, des chaînages de méthodes et de nombreuses fonctions auxiliaires. Installation via Composer :

composer require nesbot/carbon

Fonctionnalités clés de Carbon :

  • Méthodes lisibles par l'homme : now(), yesterday(), tomorrow()
  • Localisation (prise en charge du russe)
  • Gestion des intervalles : diffForHumans()
  • Modification de la date via chaînage : ->addDays(5)->subMonths(2)
  • Comparaison : isWeekend(), isPast(), isFuture()

Exemple avec localisation russe :

<?phprequire 'vendor/autoload.php';use Carbon\\Carbon;

Carbon::setLocale('ru');$date = Carbon::now();echo $date->diffForHumans(); // "только что" ou "3 часа назад"?>

Carbon est la norme de facto pour travailler avec les dates dans Laravel et de nombreux autres projets.



3. Chronos — une alternative légère

Chronos de CakePHP est une autre extension de DateTime, mais axée sur la légèreté et les performances. Installation :

composer require cakephp/chronos

Différences par rapport à Carbon :

  • Aucune dépendance (sauf PHP)
  • Typage plus strict
  • Prise en charge des objets immuables (immutable) par défaut
  • Moins de méthodes, mais les principales sont présentes

Exemple :

<?phpuse Cake\\Chronos\\Chronos;

$date = Chronos::now();$future = $date->addDays(10);echo $future->format('d.m.Y');?>

Chronos est adapté aux projets où la propreté du code et les performances sont importantes, mais où un vaste écosystème n'est pas nécessaire.



4. CarbonImmutable et DateTimeImmutable

Depuis PHP 5.5, la classe DateTimeImmutable est apparue, qui ne modifie pas l'objet d'origine mais en retourne un nouveau. Carbon a un équivalent — CarbonImmutable. Cela évite les mutations accidentelles des données :

<?phpuse Carbon\\CarbonImmutable;

$date = CarbonImmutable::now();$newDate = $date->addDay();echo $date->format('Y-m-d'); // L'original n'a pas changé?>

Utilisez les versions immuables si les dates sont transmises entre fonctions ou stockées dans le cache.



5. League\\Period — travail avec les périodes

La bibliothèque Period de The League of Extraordinary Packages est conçue pour travailler avec les intervalles de temps et les péri

Recommendations