Questo è un rigiro assurdo:

$ora_attuale = mktime(substr(date("H:i", time()), 0, 2), substr(date("H:i", time()), 3, 2), 0, 0, 0, 0);

che puoi fare meglio così:

$ora_attuale = mktime(date("H"), date("i"), 0, 0, 0, 0);

Comunque probabilmente non ti funziona perchè hai passato giorno, mese e anno sbagliato. Si vede che in un caso te lo lascia fare nell'altro no.
Piuttosto passa 1, 1, 2000 o qualcosa di simile!