Creo que lo enfocas un poco mal. Pregunto, si es hoy lo pone en rojo, pero si faltan 2 días es naranja, genial, pero, que pasa cuando faltan 1 día, o 3 días, o ya pasaron los días?
Con el dateDiff deberías saber cuantos días faltan, y de acuerdo a ese dato entero tomar las deciciones, lo estas haciendo más abstracto de lo que es realmente...
por ejemplo
Código PHP:
<?php
//obtener fecha actual para compararlo con el ultimo intento
$fecha = getdate();
//saco las fechas de la base de datos, ojo que los saco con minutos y segundos
$today=($fecha["year"]."-".$fecha["mon"]."-".$fecha["mday"]." ".$fecha["hours"].":".$fecha["minutes"].":".$fecha["seconds"]);
//genero una resta de la fecha actual contra el ultimo intento guardado en la BD
$datetime1 = new DateTime($today);
// la fecha con la que me interesa
$datetime2 = new DateTime($fila_usuario['ultimointento']);
$intervalo = $datetime1->diff($datetime2);
//primero comparamos si y han pasado mas de 24hs, o sea, 1 día desde el ultimo intento fallido
if($intervalo->format('%a')>1){
//pasa algo
}else{
//pasa otra cosa
}
?>