2017-05-09 47 views
0

我目前得到兩個時間之間的區別在幾分鐘內像這樣的下面,它工作正常...如何在PHP中獲得兩次最短的區別?

$time1 = strtotime($firsttime); 
$time2 = strtotime($secondtime); 
$interval = abs($time2 - $time1); 
$diffinminutes = round($interval/60); 

但是比方說......

$firsttime = 02:05 
$secondtime = 20:05 

這種計算將返回1080分鐘(18小時x 60分鐘)。

我希望能夠得到最短的差異,基於時間是一個連接的圓圈(即像一個時鐘哈哈)。

所以在上面的例子中,我寧願它從02:05「倒退」直到它命中20:05,並因此返回360分鐘(6小時x60分鐘)。

換句話說,我期望得到最短的差異,無論我們去哪個方向找到它。

希望這是有道理的。

任何有關如何做到這一點的意見,將不勝感激,謝謝!

+0

首先你02:05轉換成14:05然後減去.... –

+0

可能重複[在PHP中獲取兩次之間的時間差](http://stackoverflow.com/questions/13928021/getting-time -difference-between-two-in-php) –

回答

1

(假設你輸入的只是時間,而不是時間戳。)

如果結果大於12小時,然後就從24減去它:

if ($result > 720) { 
    $result = 1440 - $result; 
} 

你可能想改變>>=取決於你想要綁在哪一邊。

+0

這麼簡單但有效,謝謝! – user3304303