Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Fare la differenza tra due ore...

    Salve!

    Ho due ore (Ora, minuti e secondi) che sono stati settati grazie a date() (quindi: date("His"))

    Ora...Una data l'ho memorizzata nel database che ha come tipo di campo TIME. L'altra è quella del momento!

    Se volessi fare la differenza tra quella del momento e quella memorizzata cosa devo fare?

    Ho provato così:

    Codice PHP:
    $tempo_adesso date ("His");
    $tempo_vecchio //Ho ricavato dal database la variabile

    $tempo_differenza $tempo_adesso $tempo_vecchio
    Ma non funziona!

    Come faccio?

  2. #2
    Intanto dovresti avere lo stesso formato per l'orario. Assumi hh:mm:ss.

    Poi devi considerare che solo l'ora potrebbe non essere significativa senza il giorno. Se sei sicuramente nell'ambito delle 24 ore potresti fare la cosa sia con mysql che con php. Vediamo con php.
    codice:
    $var1 = '2:30:20';       // tempo da db - valore minore
    $var2 = date("H:i:s");   // $tempo_adesso - valore maggiore 
    
    $ora1 = explode(":",$var1);
    $ora2 = explode(":",$var2);
    
    $diff = mktime($ora2[0],$ora2[1], $ora2[2],1,1,2000) - mktime($ora1[0], $ora1[1], $ora1[2], 1,1,2000);
    
    echo $tempo = floor($diff / (60*60)).":".(($diff / 60) % 60).":".($diff % 60) ;
    E' abbastanza chiaro. La data 1,1,2000 serve solo per dare la data a mktime altrimenti fallirebbe, e' una data arbitraria puo' essere qualunque nell'ambito del range unix timestamp. Se eventualmente ci fosse un gap di un giorno, lo puoi aggiungere (+1) nel mktime.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.