PHP:
Comparando duas datas

How to:

Vamos ver como comparar duas datas em PHP:

<?php
$data1 = new DateTime("2023-03-01");
$data2 = new DateTime("2023-04-01");

if ($data1 < $data2) {
    echo "Data1 é anterior a Data2.";
} elseif ($data1 > $data2) {
    echo "Data1 é posterior a Data2.";
} else {
    echo "As datas são iguais.";
}
// Saída esperada: Data1 é anterior a Data2.

Agora, calculando a diferença entre duas datas:

<?php
$data1 = new DateTime("2023-03-01");
$data2 = new DateTime("2023-04-01");

$intervalo = $data1->diff($data2);

echo $intervalo->format("%R%a dias");
// Saída esperada: +31 dias

Deep Dive

PHP tem manuseado datas e horas principalmente através da classe DateTime desde a versão 5.2.0, oferecendo uma maneira orientada a objetos para trabalhar com datas. Antes disso, as funções strtotime() e date() eram predominantemente utilizadas, mas a classe DateTime oferece mais flexibilidade e funções robustas para manipulação de datas.

Existem alternativas como a biblioteca Carbon para PHP, uma extensão da DateTime que fornece métodos adicionais para uma manipulação de datas ainda mais fluída.

No que toca à implementação, ao se comparar objetos DateTime, o PHP utiliza as informações de timestamp internas para determinar qual é a maior ou se são iguais.

See Also

Para mais detalhes sobre a manipulação de datas e horas com PHP, consulte: