É 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.
