2013-10-10 75 views
0

試圖減去兩倍兩個時間之間的「差別」:上面會輸出2222,這意味着22小時22分鐘差異PHP的DateTime:如何獲得使用24小時時鐘格式

$obtime = "2310"; 
$runtime = "0048"; 

$run=new DateTime($runtime); 
$ob=new DateTime($obtime); 
$interval= $run->diff($ob); 
$age=$interval->format('%H%I'); 
print "Age is: $age\n"; 

。 當然,我們知道時鐘前進,而0048僅在2310之後1小時38分鐘。

有沒有更好的方法來查找兩個「24小時」時間之間的時差?

回答

1

$obtime = strtotime("2310"); 
$runtime = strtotime("0048"); 
echo gmdate("H:i:s", $obtime - $runtime); 
0

感謝如何gwillie。這不符合你的要求,但是,這是因爲時間變量的順序。

如果您從NEWER時間中減去OLDER時間,它將起作用。

此輸出1個小時38分鐘:

$obtime = strtotime("2210"); 
$runtime = strtotime("2348"); 
echo gmdate("H:i", $runtime - $obtime); 

雖然此輸出22小時22分鐘:

$obtime = strtotime("2210"); 
$runtime = strtotime("2348"); 
echo gmdate("H:i", $obtime - $runtime); 

提提,該方法可以前進或後退,而原來的方法我使用不是那麼「聰明」。

+0

哎呀我的壞,沒有使用abs。寫它'echo gmdate(「H:我」,abs($運行時 - $ obtime))'那麼它不會影響減法的方式 – gwillie

+0

其實,看起來像使用abs使它只給出錯誤的(2222)答案。 – Corepuncher

+0

你做了噓聲,也許格式化...根據神的規定數學規則abs(1 - 8)=== abs(8 - 1)' – gwillie

相關問題