Método diff da classe DateTime
O método diff da classe DateTime aceita como parâmetro outro objeto DateTime e retorna um objeto DateInterval, contendo a diferença entre as datas. A diferença pode ser obtida em várias unidades de medida (dias, meses, anos, etc.).
Sintaxe
$interval = $datetime1->diff($datetime2);
Exemplo
Vamos calcular a diferença entre duas datas:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%R%a days');
?>
Resultado da execução do código:
'+45 days'
Exemplo
Vamos obter a diferença em meses e dias:
<?php
$date1 = new DateTime('2023-03-10');
$date2 = new DateTime('2023-05-25');
$interval = $date1->diff($date2);
echo $interval->format('%m months %d days');
?>
Resultado da execução do código:
'2 months 15 days'
Exemplo
Comparação de datas considerando o horário:
<?php
$date1 = new DateTime('2023-01-01 10:00:00');
$date2 = new DateTime('2023-01-01 14:30:00');
$interval = $date1->diff($date2);
echo $interval->format('%h hours %i minutes');
?>
Resultado da execução do código:
'4 hours 30 minutes'
Veja também
-
a função
date,
que formata data e hora -
a função
strtotime,
que converte uma string em timestamp -
a classe
DateInterval,
que representa um intervalo de datas