Home / Programmazione / PHP / Differenza tra orari in PHP
Mattepuffo

Differenza tra orari in PHP

Differenza tra orari in PHP

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.