- Home
- Categorie
- Coding e Sistemistica
- PHP
- Differenza fra 2 orari
-
Differenza fra 2 orari
Salve devo effettuare la differenza fra 2 orari differenti (orario
conferma - orario iscrizione). Ho provato con "strtotime" ma non
riesco. Qualcuno può darmi una mano?Il primo orario lo prelevo dal database.
$tempoiscrizione=strtotime($utente["ute_tempiscr"]);
Il secondo rappresenta l'ora attuale nella pagina
$tempconferma=strtotime(date("H:i:s"));$differenza=$tempconferma-$tempoiscrizione;
Se stampo $differenza nel formato date() nn mi esce la differenza esatta. Dove sbaglio? Grazie.
-
Hai usato correttamente il formato timestamp che in pratica contiene il numero di secondi passati dall'1/1/1970 e quindi è facilmente confrontabile.
Però:- in $tempconferma metti solo ora minuti e secondi che non è un valore valido per strototime. Se vuoi il timestamp di adesso è semplicemente:
$tempconferma = time(); - verifica cosa hai in $utente['ute_tempiscr'], anche questo valore deve essere in un formato compatibile con strtotime (http://it2.php.net/manual/it/function.strtotime.php)
- in $tempconferma metti solo ora minuti e secondi che non è un valore valido per strototime. Se vuoi il timestamp di adesso è semplicemente:
-
Ciao,
innanzitutto potresti provare ad usare la funzione time() al posto di strtotime(date("H:i:s")); così hai già un valore intero...
In questo modo hai la differenza tra le due date in termini di secondi, se vuoi trasformarli in giorni, ore e minuti devi far fare i calcoli alla funzione; se usi date() e gli passi $differenza ottieni una nuova data che, se ho capito bene, non c'entra con quello che vuoi fare tu.
Esempio:
$minuti = floor($differenza/60);
$ore = floor($differenza-($minuti*60))/3600
e così via...Ciao
-
Ho cambiato il campo in int, in modo da assegnarli temp.
$tempconferma =time();
$tempoiscrizione=time($utente["tempiscr"]);
$differenza=$tempconferma-$tempoiscrizione;
print(date("G:i:s", $differenza));
Ma non funziona.
-
Dovrei calcolare il tempo di iscrizione ad una newsletter, se l'utente non conferma l'iscrizione entro 24 ore verra cancellato dal db.
-
@Max85 said:
print(date("G:i:s", $differenza));
Questa istruzione ti dice quanto tempo è trascorso dalla mezzanotte del 01/01/1900.
Il calcolo del tempo trascorso lo devi fare tu.
Guardati l'esempio che ti ho fatto per capire cosa intendo.Inoltre, se stai usando MySQL come database, dovrebbero esserci delle operazioni per le date che forse ti possono essere utili.
Se ho un pò di tempo le cerco e te le posto... in ogni caso puoi cominciare a vederti la documentazione su MySQL (penso che anche altri database permettano di fare questo tipo di operazioni cmq).Ciao
-
Se in $utente["tempiscr"] c'è già un time non devi richiamare la time, quindi:
$tempconferma =time();
$tempoiscrizione=$utente["tempiscr"];
$differenza=$tempconferma-$tempoiscrizione;
-
Dai uno sguardo qui: http://database.html.it/articoli/leggi/935/funzioni-di-data-e-tempo-con-mysql/3/
Sono le operazioni sulle date che possono essere fatte direttamente da MySQL.
-
Grazie dell'aiuto. Ci sono riuscitoooo. Grazie ancora. Ciao.