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
![]()
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
![]()
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 201802Originariamente 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'));
ma io dovrei sapere quanti secondi o minuti sono passati da 20:18:02 ad ora
Ciao,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
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.
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 :
Ora se io faccio un $tempo_passato = $ora - $lav_ora;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]);
In teoria dovrebbe darmi dei risultati giusto ?
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 :
Ora se io faccio un $tempo_passato = $ora - $lav_ora;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]);
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 ?
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)
![]()