2011-10-28 15 views
18

ottenuto questo lavoro su PHP 5,3Tempo diff in minuti tra 2 date

$datetime1 = new DateTime("2011-10-10 10:00:00"); 
$datetime2 = new DateTime("2011-10-10 10:45:00"); 
$interval = $datetime1->diff($datetime2); 
$hours = $interval->format('%h'); 
$minutes = $interval->format('%i'); 
echo 'Diff. in minutes is: '.($hours * 60 + $minutes); 

Come posso farlo funzionare su PHP 5.2? ci sono funzioni equivalenti disponibili ??

ottenuto che funziona

$date1 = "2011-10-10 10:00:00"; 
$date2 = "2011-10-10 10:11:00"; 
echo round((strtotime($date2) - strtotime($date1)) /60); 

risposta

41

Invece di DateTime è possibile utilizzare strtotime e date:

$datetime1 = strtotime("2011-10-10 10:00:00"); 
$datetime2 = strtotime("2011-10-10 10:45:00"); 
$interval = abs($datetime2 - $datetime1); 
$minutes = round($interval/60); 
echo 'Diff. in minutes is: '.$minutes; 
+1

Penso che usare $ interval/60 è meglio ottenere i minuti. "date ('i', ...)" limiterà a 59 minuti. –

+0

Grazie, ho trovato un'altra soluzione .. si prega di consultare il mio aggiornamento – sam

+0

È la stessa soluzione dopo la mia modifica e suggerimento @JaisonErick. ;-) – hsz

0

Se avete bisogno i minuti che abbracciano diversi giorni si potrebbe aggiungere questo uno nel mix:

$days = $interval->format("%d"); 

if ($days > 0) { 
    return ($hours * 60 + $minutes) + ($days * 24 * 60); 
} 
1

Prova questo

function time_Diff_Minutes($startTime, $endTime) { 
     $to_time = strtotime($endTime); 
     $from_time = strtotime($startTime); 
     $minutes = ($to_time - $from_time)/60; 
     return ($minutes < 0 ? 0 : abs($minutes)); 

} 
echo time_Diff_Minutes("2008-12-13 20:00:00","2008-12-14 08:00:00"); //output 720 
echo time_Diff_Minutes("2008-12-14 20:00:00","2008-12-13 08:00:00"); //output 0 (startTime > endTime) Ternary will return 0 
Problemi correlati