Méthode format de la classe DateInterval

La méthode format de la classe DateInterval convertit un intervalle de temps en une représentation sous forme de chaîne selon le format spécifié. Elle prend comme paramètre une chaîne de format contenant des caractères spéciaux, et retourne une chaîne formatée.

Syntaxe

phppublic DateInterval::format(string $format): string

Caractères spéciaux

Spécificateur Description Exemple
%Y Nombre d'années (au moins 2 chiffres) 01, 12
%y Nombre d'années (sans complément de zéros) 1, 12
%M Nombre de mois (au moins 2 chiffres) 01, 11
%m Nombre de mois (sans complément de zéros) 1, 11
%D Nombre de jours (au moins 2 chiffres) 01, 31
%d Nombre de jours (sans complément de zéros) 1, 31
%H Nombre d'heures (au moins 2 chiffres) 01, 23
%h Nombre d'heures (sans complément de zéros) 1, 23
%I Nombre de minutes (au moins 2 chiffres) 01, 59
%i Nombre de minutes (sans complément de zéros) 1, 59
%S Nombre de secondes (au moins 2 chiffres) 01, 59
%s Nombre de secondes (sans complément de zéros) 1, 59
%R Signe de l'intervalle (+ ou -) +, -
%r Signe de l'intervalle avec indication explicite (- si négatif) , -
%% Symbole pourcent %

Exemple

Formatage d'un intervalle en jours et heures :

php<?php
  $interval = new DateInterval('P2DT5H');
  echo $interval->format('%d days, %h hours');
?>

Résultat de l'exécution du code :

php'2 days, 5 hours'

Exemple

Formatage d'un intervalle en représentation complète :

php<?php
  $interval = new DateInterval('P1Y3M5DT7H10M');
  echo $interval->format('%y years %m months %d days %h hours %i minutes');
?>

Résultat de l'exécution du code :

php'1 years 3 months 5 days 7 hours 10 minutes'

Exemple

Formatage d'un intervalle avec zéros non significatifs :

php<?php
  $interval = new DateInterval('PT5H3M');
  echo $interval->format('%H:%I');
?>

Résultat de l'exécution du code :

php'05:03'

Voir aussi

  • classe DateInterval,
    qui représente un intervalle de temps
  • méthode DateTime::format,
    qui formate une date et une heure
  • fonction date,
    qui formate un timestamp