(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Retourne la différence entre deux objets DateTime
Style orienté objet
$targetObject
, bool $absolute
= false
): DateInterval$targetObject
, bool $absolute
= false
): DateIntervalStyle procédural
$baseObject
, DateTimeInterface $targetObject
, bool $absolute
= false
): DateIntervalRetourne la différence entre deux objets DateTimeInterface.
datetime
La date à comparer.
absolute
Doit-on forcer l'intervalle à être positif ?
L'objet DateInterval représente la différence
entre les deux dates ou false
si une erreur survient.
La valeur de retour représente de façon plus détaillé l'intervale à appliquer
sur l'objet original ($this
ou
$originObject
) pour arriver à
$targetObject
. Cette procédure n'est pas toujours
réversible.
Exemple #1 Exemple avec DateTime::diff()
Style orienté objet
<?php
$origin = new DateTime('2009-10-11');
$target = new DateTime('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a days');
?>
Style procédural
<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a days');
?>
Les exemples ci-dessus vont afficher :
+2 days
Exemple #2 Comparaison de deux objets DateTime
Note:
Les objets DateTime peuvent être comparés en utilisant les opérateurs de comparaison.
<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>
L'exemple ci-dessus va afficher :
bool(false) bool(true) bool(false)