Travailler avec les dates et l'heure en PHP : fonctions, classes et exemples

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

Travailler avec les dates et l'heure en PHP : des bases aux techniques avancées



Travailler avec les dates et l'heure est l'une des tâches les plus courantes en développement web. Que ce soit pour afficher la date actuelle, calculer la différence entre des événements ou enregistrer des horodatages dans une base de données, PHP offre une boîte à outils puissante et flexible. Dans cet article, nous allons détailler les fonctions principales, les classes et les meilleures pratiques pour travailler avec les dates et l'heure en PHP.



Ce contenu sera utile aussi bien aux débutants qui commencent tout juste à apprendre PHP qu'aux développeurs expérimentés souhaitant systématiser leurs connaissances.



1. Fonctions de base : date(), time() et mktime()



Commençons par les fondamentaux. PHP propose plusieurs fonctions intégrées pour travailler avec les dates. Les plus populaires sont date(), time() et mktime().



La fonction time()

La fonction time() retourne l'horodatage Unix actuel (timestamp) — le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC. C'est la valeur de base sur laquelle reposent de nombreuses opérations.



echo time(); // Affichera quelque chose comme 1698765432


La fonction date()

La fonction date() formate la date et l'heure locales. Le premier paramètre est une chaîne de format, le second (optionnel) est un timestamp. Si le second paramètre n'est pas spécifié, l'heure actuelle est utilisée.



// Formats de baseecho date("Y-m-d");          // 2023-10-31echo date("H:i:s");          // 14:30:00echo date("d.m.Y H:i");      // 31.10.2023 14:30echo date("l, j F Y");       // Tuesday, 31 October 2023

// Timestamp personnalisé$timestamp = mktime(12, 0, 0, 1, 1, 2024);echo date("Y-m-d H:i:s", $timestamp); // 2024-01-01 12:00:00


Symboles de formatage courants :

  • d — jour du mois (01-31)
  • m — mois (01-12)
  • Y — année sur 4 chiffres
  • H — heures (00-23)
  • i — minutes (00-59)
  • s — secondes (00-59)


La fonction mktime()

mktime() crée un timestamp basé sur les paramètres passés (heures, minutes, secondes, mois, jour, année). C'est pratique pour obtenir l'horodatage d'une date spécifique.



// Création d'un timestamp pour le 25 décembre 2023 à 10:30:00$christmas = mktime(10, 30, 0, 12, 25, 2023);echo date("d.m.Y H:i:s", $christmas); // 25.12.2023 10:30:00


2. Approche orientée objet : la classe DateTime



Bien que les fonctions date() et time() soient simples, elles ont des limites. Pour des opérations plus complexes (comparaison de dates, gestion des fuseaux horaires, addition/soustraction d'intervalles), il est préférable d'utiliser la classe DateTime.



Création d'objets DateTime

// Heure actuelle$now = new DateTime();echo $now->format("Y-m-d H:i:s"); // 2023-10-31 14:30:00

// Date spécifique$date = new DateTime("2024-03-15 08:00:00");echo $date->format("d.m.Y"); // 15.03.2024

// Formats relatifs$nextWeek = new DateTime("+1 week");echo $nextWeek->format("Y-m-d");

$lastMonth = new DateTime("first day of last month");echo $lastMonth->format("Y-m-d");


Gestion des fuseaux horaires

L'un des principaux avantages de DateTime est la prise en charge des fuseaux horaires.



// Spécification du fuseau horaire lors de la création$moscow = new DateTime("now", new DateTimeZone("Europe/Moscow"));echo $moscow->format("Y-m-d H:i:s"); // Heure de Moscou

// Changement de fuseau horaire$newYork = new DateTime("now", new DateTimeZone("America/New_York"));echo $newYork->format("Y-m-d H:i:s"); // Heure de New York

// Liste des fuseaux disponibles : https://www.php.net/manual/ru/timezones.php


Comparaison de dates

$date1 = new DateTime("2024-01-01");$date2 = new DateTime("2024-12-31");

if ($date1 < $date2) { echo "La première date est antérieure à la seconde";}

// Diff

Blogs

Book Recommendations