Originariamente inviato da tziggie
Fermo restando che il meccanismo in sé funziona, mi sono accorto che nel messaggio di errore viene conteggiata un'ora in più rispetto a quella che mi aspettavo (nel caso di sopra 01 ore 10 min).
Da dove vengono questi 3600 secondi non preventivati? :master:
Grazie a tutti, ciao!
non credo tu possa fare questo calcolo. il risultato che ottieni e' un valore in secondi. Se lo consideri come un unix timestamp verra' applicato su la differenza del fuso orario e dell'eventuale ora legale.
Dovresti considerare il valore di $diff come assoluto e calcolare su questo le ore, minuti ed i secondi.
ti posto un esempio per il calcolo dell'orario a partire da due data/ora.
Codice PHP:
function oreSubs($ora_M, $ora_m) {
$diff = $ora_M - $ora_m;
$ore = floor($diff / (60*60));
$minuti = ($diff / 60) % 60;
$p = "$ore:$minuti:".($diff % 60);
return $p;
}
$ora_M = mktime(12,10,30, 6, 8, 2007); // data maggiore
$ora_m = mktime(10,15,00, 6, 8, 2007); // data minore
echo oreSubs($ora_M, $ora_m);