Mattepuffo.com
Differenza tra orari in PHP
Dettagli- Dettagli
- Categoria principale: Programmazione & Co.
- Ultima modifica il Venerdì, 10 Agosto 2012 14:54
- Pubblicato Venerdì, 10 Agosto 2012 14:54
La gestione della date e degli orari è sempre problematica.
In questo articolo vedremo come calcolare la differenza tra due orari.
Vedremo due metodi differenti.
Il primo è un suggerimento di un utente di uno del mio forum preferito
La funzione è questa qua:
function time_diff_in_seconds($ora) {
$components = split(":", $ora);
$secs = $components[0]*3600 + $components[1] * 60 + $components[2];$now = localtime(time(), true);
$secs_now = $now["tm_hour"] * 3600 + $now["tm_min"] * 60 + $now["tm_sec"];
return $secs_now - $secs;
}
"La richiami passando la tua stringa ("19:30:00" per esempio) e ti ritorna il numero di secondi di differenza dall'orario attuale" (citazione dell'autore del post: Sonic).
Controllate come vi esce l'output e vedete se dovete fare altre modifiche.
Il secondo metodo è questo qua:
$oraDb = date('H:i:s', $_GET['hr']);
$oraAdesso = date('H:i:s');
list($hh1, $mm1) = explode(":", $oraDb);
list($hh2, $mm2) = explode(":", $oraAdesso);
$tInizio = mktime($hh1, $mm1, 0, $data[0], $data[1], $data[2]) / 3600;
$tFine = mktime($hh2, $mm2, 0, $data[0], $data[1], $data[2]) / 3600;
$tempo = ($tInizio - $tFine);
if ($oraDb > $oraAdesso && $tempo < 2) {
// FAI OPERAZIONE
}
Nel mio caso specifico dovevo svolgere determinate operazioni se il risultato calcolato era inferiore a 2 ore.
$_GET['hr'] è un parametro che passo tramite query string e lo prendo direttamente da db.


