(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes
Retourne un nouvel objet DateTimeImmutable, avec l'objet DateInterval spécifié soustrait de l'objet DateTimeImmutable spécifié.
interval
Un objet DateInterval.
Retourne un nouvel objet DateTimeImmutable avec les données modifiées.
Si une opération non supportée est tentée, tel que l'utilisation d'un object
DateInterval représentant une spécification de temps
relatif tel que next weekday
, une
DateInvalidOperationException est lancé.
Version | Description |
---|---|
8.3.0 | Lance désormais une DateInvalidOperationException au lieu d'un avertissement quand une opération non supportée est tentée. |
Exemple #1 Exemple de DateTimeImmutable::sub()
Style orienté objet
<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>
Les exemples ci-dessus vont afficher :
2000-01-10
Exemple #2 Exemples supplémentaires de DateTimeImmutable::sub()
<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>
L'exemple ci-dessus va afficher :
2000-01-19 13:59:30 1992-08-15 19:56:58
Exemple #3 Faire attention lors de la soustraction de mois
<?php
$date = new DateTimeImmutable('2001-04-30');
$interval = new DateInterval('P1M');
$newDate1 = $date->sub($interval);
echo $newDate1->format('Y-m-d') . "\n";
$newDate2 = $newDate1->sub($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>
L'exemple ci-dessus va afficher :
2001-03-30 2001-03-02