>(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::__construct — Crée un nouvel objet DateInterval
Description
public
DateInterval::__construct(string
$duration)
Liste de paramètres
-
duration
-
Une spécification d'intervalle.
Le format commence avec la lettre P,
pour period.
Chaque durée de la période est représentée par une
valeur entière suivie par une désignation de période.
Si la durée contient des éléments de temps, cette portion
de la spécification est précédée par la lettre
T.
Désignation de période duration
| Désignation de période |
Description |
Y |
Années |
M |
Mois |
D |
Jours |
W |
Semaine. Converti en jours.
Antérieur à PHP 8.0.0, ne peut pas être combiné avec
D.
|
H |
Heures |
M |
Minutes |
S |
Secondes |
Voici quelques exemples simples :
2 jours sera P2D ;
2 secondes sera PT2S ;
6 années et 5 minutes sera P6YT5M.
Note:
Les types d'unité doivent être entrés des plus
grands aux plus petits. Ainsi, les années doivent
être présentes avant les mois, les mois avant les jours,
les jours avant les minutes, etc.
Aussi, une année et 4 jours doit être représenté comme
P1Y4D, et non P4D1Y.
Cette spécification peut également être représentée sous
la forme d'une durée. Aussi, une année et 4 jours peut
être P0001-00-04T00:00:00.
Mais les valeurs de ce format ne peuvent pas excéder
une période donnée (i.e. 25 heures est invalide).
Ces formats sont basés sur la » spécification de durée
ISO 8601.
Erreurs / Exceptions
Lance une exception Exception lorsque le paramètre
duration ne peut être analysé comme un intervalle.
Historique
Exemples
Exemple #1 Construction et utilisation des objets DateInterval
<?php
// Créer une date spécifique
$someDate = \DateTime::createFromFormat("Y-m-d H:i", "2022-08-25 14:18");
// Créer un intervalle
$interval = new \DateInterval("P7D");
// Ajouter un intervalle
$someDate->add($interval);
// Convertir l'intervalle en chaîne de caractères
echo $interval->format("%d");
L'exemple ci-dessus va afficher :
7
Exemple #2 Exemple avec DateInterval
<?php
$interval = new DateInterval('P1W2D');
var_dump($interval);
?>
Résultat de l'exemple ci-dessus en PHP 8.2 :
object(DateInterval)#1 (10) {
["y"]=>
int(0)
["m"]=>
int(0)
["d"]=>
int(9)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
["from_string"]=>
bool(false)
}
Résultat de l'exemple ci-dessus en PHP 8 :
object(DateInterval)#1 (16) {
["y"]=>
int(0)
["m"]=>
int(0)
["d"]=>
int(9)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
Résultat de l'exemple ci-dessus en PHP 7 :
object(DateInterval)#1 (16) {
["y"]=>
int(0)
["m"]=>
int(0)
["d"]=>
int(2)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
Voir aussi
- DateInterval::format() - Formate l'intervalle
- datetime::add() - Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
- datetime::sub() - Soustrait une durée à un objet DateTime
- datetime::diff() - Retourne la différence entre deux objets DateTime