(PHP 5 >= 5.3.0, PHP 7)
DateInterval::format — Formate l'intervalle
$format
)Formate l'intervalle.
format
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 | -, |
Retourne l'intervalle formaté.
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".
Exemple #1 Exemple avec DateInterval
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d jours');
?>
L'exemple ci-dessus va afficher :
4 jours
Exemple #2 DateInterval et retenue
<?php
$interval = new DateInterval('P32D');
echo $interval->format('%d jours');
?>
L'exemple ci-dessus va afficher :
32 jours
Exemple #3 DateInterval et DateTime::diff() avec les modificateurs %a et %d
<?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