Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Confronto orario

  1. #1

    Confronto orario

    Se io ho un valore di un ora di questo tipo


    20:18:02


    e volessi che se passano più di 10 minuti da quell'ora come posso fare ??

    Quel valore l'ho nel db in un campo di tipo time


  2. #2
    converti tutto in secondi
    in questo modo è facile controllare tutto quello che ti pare, in 10 minuti ci sono 600 secondi

    per convertire in secondi
    intval(str_replace(':', '', '20:18:02'));

  3. #3
    Originariamente inviato da bubu77
    converti tutto in secondi
    in questo modo è facile controllare tutto quello che ti pare, in 10 minuti ci sono 600 secondi

    per convertire in secondi
    intval(str_replace(':', '', '20:18:02'));
    mi trasforma l'ora in 201802


    ma io dovrei sapere quanti secondi o minuti sono passati da 20:18:02 ad ora

  4. #4
    Originariamente inviato da stefano3804
    mi trasforma l'ora in 201802


    ma io dovrei sapere quanti secondi o minuti sono passati da 20:18:02 ad ora
    Ciao,

    bisogna fare attenzione a gestire le sole ore. Senza il riferimento del giorno ci sono troppe situazioni anomale. Per esempio 23:50:00 + 10 minuti sara' uguale a 00:00:00. Meglio usare lo unix timestamp.

    campo INT(10), inserimento con:

    insert / update campo = UNIX_TIMESTAMP()

    Poi 10 minuti son 600 secondi ed e' semplicissimo ... come confrontare un numero ..

    WHERE ora + 600 <= UNIX_TIMESTAMP() oppure nel select se vuoi conoscere quanto tempo e' passato:

    SELECT UNIX_TIMESTAMP() - campo_ora AS da_quanto

    ed avrai il risultato in secondi.


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

  5. #5
    ci avevo pensato anche io allo soluzione dello unix_timestamp pero nel db ho gia tutte le date con date per i giorni e time per le ore . Cmq poco male per quello perche me le converto :

    Codice PHP:
    $ora time();

    $array_ora explode (":",$data->ora);
    $array_day explode ("-",$data->data);


    $lav_ora mktime($array_ora[0],$array_ora[1],$array_ora[2],$array_day[1],$array_day[2],$array_day[0]); 
    Ora se io faccio un $tempo_passato = $ora - $lav_ora;

    In teoria dovrebbe darmi dei risultati giusto ?

  6. #6
    Originariamente inviato da stefano3804
    ci avevo pensato anche io allo soluzione dello unix_timestamp pero nel db ho gia tutte le date con date per i giorni e time per le ore . Cmq poco male per quello perche me le converto :

    Codice PHP:
    $ora time();

    $array_ora explode (":",$data->ora);
    $array_day explode ("-",$data->data);


    $lav_ora mktime($array_ora[0],$array_ora[1],$array_ora[2],$array_day[1],$array_day[2],$array_day[0]); 
    Ora se io faccio un $tempo_passato = $ora - $lav_ora;

    In teoria dovrebbe darmi dei risultati giusto ?

    e me lo da corretto giusto

    Ora se voglio trasformare ad esempio 5070 in minuti c'e la possibilita ?

  7. #7
    ho risolto facendo cosi :

    $tempo_trascorso = floor($ora2/60);

    Tanto non serve una cosa precisa al secondo ma solo a dare una indicazione (tanto il controllo lo faccio fare sulla differenza in unix_timestamp)


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.