array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'datetime.diff.php', 1 => 'DateTime::diff', ), 'up' => array ( 0 => 'class.datetimeinterface.php', 1 => 'DateTimeInterface', ), 'prev' => array ( 0 => 'class.datetimeinterface.php', 1 => 'DateTimeInterface', ), 'next' => array ( 0 => 'datetime.format.php', 1 => 'DateTime::format', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/datetime/datetimeinterface/diff.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Devuelve la diferencia entre dos objetos DateTime
Estilo orientado a objetos
Estilo por procedimientos
$datetime1
, DateTimeInterface $datetime2
, bool $absolute
= false
): DateIntervalDevuelve la diferencia entre dos objetos DateTimeInterface.
datetime
La fecha a comparar.
absolute
¿Debería el intervalo ser forzado para ser positivo?
El objeto DateInterval que representa la
diferencia entre dos fechas o false
en caso de error.
Ejemplo #1 Ejemplo de DateTime::diff()
Estilo orientado a objetos
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a días');
?>
Estilo por procedimientos
<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a días');
?>
El resultado de los ejemplos sería:
+2 days
Ejemplo #2 Comparación de objetos DateTime
Nota:
A partir de PHP 5.2.2, los objetos DateTime se pueden comparar usando los operadores de comparación.
<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>
El resultado del ejemplo sería:
bool(false) bool(true) bool(false)