DateInterval::format
(PHP 5 >= 5.3.0)
DateInterval::format — Formate l'intervalle
Description
public string DateInterval::format
( string
$format
)Formate l'intervalle.
Liste de paramètres
-
format
-
Les caractères suivants sont reconnus dans la chaîne format
. Chaque caractère utilisé pour le format doit être préfixé par un signe de pourcentage (%).Caractère de format
Description Valeur d'exemple % Caractère % littéral % Y Année, numérique, au moins 2 chiffres avec zéros initiaux 01, 03 y Année, numérique 1, 3 M Mois, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 12 m Mois, numérique 1, 3, 12 D Jour, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 31 d Jour, numérique 1, 3, 31 a Nombre total de jours, provenant de la méthode DateTime::diff() ou (unknown) sinon 4, 18, 8123 H Heure, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 23 h Heure, numérique 1, 3, 23 I Minute, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 59 i Minute, numérique 1, 3, 59 S Seconde, numérique, au moins 2 chiffres avec zéros initiaux 01, 03, 57 s Seconde, numérique 1, 3, 57 R Signe "-" lorsque négatif, "+" si positif -, + r Signe "-" lorsque négatif, vide si positif -,
Valeurs de retour
Retourne l'intervalle formaté.
Notes
Note:
La méthode DateInterval::format() ne recalcule pas la retenue dans les chaines de temps ni dans les segments de date. Ce comportement est attendu car il n'est pas possible de dépasser des valeurs comme "32 days" qui pourrait être interprété comme "1 mois et 4 jours" ou "1 mois et 1 jour".
Exemples
Exemple #1 Exemple avec DateInterval
<?php $interval = new DateInterval('P2Y4DT6H8M'); echo $interval->format('%d jours'); ?>
<?php $interval = new DateInterval('P32D'); echo $interval->format('%d jours'); ?>
<?php $january = new DateTime('2010-01-01'); $february = new DateTime('2010-02-01'); $interval = $february->diff($january); // %a affichera le nombre total de jours... echo $interval->format('%a jours au total')."\n"; // ...alors que %d n'affichera que le nombre de jours non encore couverts // dans le mois. echo $interval->format('%m mois, %d jour'); ?>
L'exemple ci-dessus va afficher :
31 jours au total 1 mois, 0 jour