Devo calcolare la differenza di fuso orario come farlo in PHP. Ho bisogno di ore esatte, minuti e secondi. qualsiasi organismo hanno gli script per questo vi prego di :-Pcome calcolare la differenza di orario in PHP
risposta
danno la funzione di datediff
a addedbytes.com si lascia a poco così facilmente :)
Perché utilizzare una vecchia funzione di buggy come questa quando la classe DateTime ha questa funzionalità integrata? – vascowhite
Scegli questa .. Questo dovrebbe funzionare
<?php
function timeDiff($firstTime,$lastTime)
{
// convert to unix timestamps
$firstTime=strtotime($firstTime);
$lastTime=strtotime($lastTime);
// perform subtraction to get the difference (in seconds) between times
$timeDiff=$lastTime-$firstTime;
// return the difference
return $timeDiff;
}
//Usage :
echo timeDiff("2002-04-16 10:00:00","2002-03-16 18:56:32");
?>
Ciao vimard grazie per il tuo prezioso replay. In realtà voglio mostrare la vecchiaia dei file come in facebook o orkut. loro mostrano il tempo, i giorni, la settimana, la visualizzazione basata sull'anno. –
quindi questo risolve il tuo problema rite ... – Vimard
@Vimard che voleva (4 anni fa) per vedere la differenza in giorni, settimane, anni non secondi. –
Per qualcosa del genere utilizzare la funzione built time int().
- Conservare il valore di
time();
qualcosa come1274467343
che è il numero di secondi scince - Quando mai avuto bisogno retrive il valore e assegnarlo a
$erlierTime
. - Assegna
time()
di nuovo al tempo fermata quest'ultimo si vorrebbe, consente solo chiamano$latterTime
Così ora avete qualcosa come $erlierTime
e $latterTime
.
Non basta fare $latterTime - $erlierTime
per ottenere la differenza in pochi secondi e poi fare le vostre divisioni per ottenere insensibile di minuti passati, num di ore passate ecc
in modo per me o chiunque per darvi un script completo avresti bisogno di dirci come è il tuo ambiente e cosa stai lavorando con mysql, sqlite, ecc ... anche per sapere come viene attivato quel timer.
Questo dovrebbe funzionare, basta sostituire i tempi nel fuso orario con il momento in cui l'attività è iniziata e l'ora corrente o il tempo in cui l'attività è terminata. Per un contatore continua l'orario di inizio sarebbe memorizzati in un database, o per il tempo trascorso per un compito il tempo finale sarebbe così
function timeDiff($firstTime,$lastTime){
// convert to unix timestamps
$firstTime=strtotime($firstTime);
$lastTime=strtotime($lastTime);
// perform subtraction to get the difference (in seconds) between times
$timeDiff=$lastTime-$firstTime;
// return the difference
return $timeDiff;
}
//Usage :
$difference = timeDiff("2002-03-16 10:00:00",date("Y-m-d H:i:s"));
$years = abs(floor($difference/31536000));
$days = abs(floor(($difference-($years * 31536000))/86400));
$hours = abs(floor(($difference-($years * 31536000)-($days * 86400))/3600));
$mins = abs(floor(($difference-($years * 31536000)-($days * 86400)-($hours * 3600))/60));#floor($difference/60);
echo "<p>Time Passed: " . $years . " Years, " . $days . " Days, " . $hours . " Hours, " . $mins . " Minutes.</p>";
È necessario convertire l'ora di inizio e l'ora di fine tramite strtotime.
dopo aver sottratto l'ora di inizio dall'ora di fine.
dopo aver superato tale differenza per il formato data o ora che era necessario ...
in modo da ottenere la differenza esatta tra due date.
Utilizzare il diff() method di PHP di DateTime class in questo modo: -
$lastWeek = new DateTime('last thursday');
$now = new DateTime();
var_dump($now->diff($lastWeek, true));
Questo vi darà un oggetto DateInterval: -
object(DateInterval)[48]
public 'y' => int 0
public 'm' => int 0
public 'd' => int 2
public 'h' => int 11
public 'i' => int 34
public 's' => int 41
public 'invert' => int 0
public 'days' => int 2
Recupero i valori desiderati da che è banale.
Questo suona come i compiti –
Google è tuo amico. (E per qualcuno come affermato "php learner" non sembri così ansioso di imparare ...) –
... come interpretare i crossover DST? – symcbean