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