CakeFest 2024: The Official CakePHP Conference

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::formatFormate l'intervalle

Description

public DateInterval::format(string $format): string

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
F Microsecondes, numérique, au moins 6 chiffres, avec zéros initiaux 007701, 052738, 428291
f Microsecondes, numérique 7701, 52738, 428291
R Signe "-" lorsque négatif, "+" si positif -, +
r Signe "-" lorsque négatif, vide si positif -,

Valeurs de retour

Retourne l'intervalle formaté.

Historique

Version Description
7.2.12 Le format F et f sera désormais toujours positif.
7.1.0 Les caractères de format F et f ont été ajoutés.

Exemples

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

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".

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top