PHPCon Poland 2024

DateTimeImmutable::sub

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

DateTimeImmutable::subSoustrait un nombre de jours, mois, années, heures et secondes

Description

public DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable, avec l'objet DateInterval spécifié soustrait de l'objet DateTimeImmutable spécifié.

Liste de paramètres

interval

Un objet DateInterval.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Erreurs / Exceptions

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

Historique

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.

Exemples

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

Voir aussi

add a note

User Contributed Notes

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