É possível verificar se ainda faltam dias ou se houve atraso usando o objeto DateInterval
retornado pelo método diff()
.
Você pode usar a propriedade invert
do objeto DateInterval
para determinar se a diferença entre as datas é positiva (sem atraso) ou negativa (com atraso). Se invert
for igual a 0, não houve atraso, e se for igual a 1, houve atraso.
Aqui está um exemplo de como você pode modificar o seu código para verificar se ainda faltam dias ou se houve atraso:
$data1 = new DateTime('2023-05-01');
$data2 = new DateTime('2023-06-01');
$diferenca = $data1->diff($data2);
if ($diferenca->invert == 0) {
echo "Faltam " . $diferenca->format('%a dias') . " para a data 2.";
} else {
echo "Já se passaram " . $diferenca->format('%a dias') . " da data 2.";
}
Neste exemplo, se a diferença for positiva ($diferenca->invert == 0
), o código exibirá a mensagem “Faltam X dias para a data 2”. Caso contrário, se a diferença for negativa ($diferenca->invert == 1
), o código exibirá a mensagem “Já se passaram X dias da data 2”.
Dessa forma, você pode adaptar o código de acordo com a sua necessidade.