2013-07-31 263 views
4

我使用時間計算夜班時間表的時間差只有計算時間差

可以說,我有這樣的數據:

$actual_in_time  = 6:45 PM  //date July 30, 2013 
$actual_out_timeout = 7:00 AM  //date July 31, 2013 

我必須來計算的時間差在哪裏的時候應該轉換成一個整體時間,因此

$actual_in_time  = //(some code to convert 6:45 PM to 7:00 PM) 
$converted_in_time = $actual_in_time; 

現在,這裏是我的代碼到:

$actual_out_time += 86400; 
$getInterval = $actual_out_time - $converted_in_time; 
$hours  = round($getInterval/60/60, 2, PHP_ROUND_HALF_DOWN); 
$hours  = floor($hours); 

我沒有得到我想要的結果。你如何計算時間差的基礎只是時間?

+0

看看[this](https://eval.in/39963)。不知道你將如何處理最後一種情況? – HamZa

回答

0

您可以使用strtotime中的第二個參數來獲取相對時間。

$start = strtotime($startTime); 
$end = strtotime($endTime, $start); 

echo ($end-$start)/3600; 
0

使用DateTime對象

$start = new DateTime('2000-01-01 6:45 PM'); 
$end = new DateTime('2000-01-01 7:00 AM'); 
if ($end<$start)$end->add(new DateInterval('P1D')); 
$diff = date_diff($start,$end); 
echo $diff->format('%h hours %i minutes'); 

加1一天,如果您的結束時間小於開始時間。