2017-05-04 106 views
0

我的代碼有一個小問題。我試圖計算兩次之間的差異。小問題PHP日期/ strtotime函數

這是我的代碼:

$dif = strtotime($tt['endtime']) - strtotime($tt['starttime']); 
echo date("H:i", $dif); 

$ TT [ '結束時間'] = 13:00和$ TT [ '開始時間']爲12:00,以便在輸出應該是01:00,但輸出是02:00。

我在做什麼錯?

在此先感謝!

+3

'date'預計Unix時間戳,而不是差2 –

+1

之間正在嘗試的時間差轉換爲日期。 5月4日11:00和5月5日11:00之後會發生什麼? –

+0

你想如何顯示格式,因爲你現在正在做的是通過差異是錯誤的,你需要手動轉換這些 –

回答

0

這是因爲date()的輸出是由您的服務器所處的時區「改變」的。有關更多信息,請參閱this question

相反,你可以使用gmdate()爲(沒有問題與時區):

$endtime = "13:00"; 
$starttime = "12:00"; 
$difference = abs(strtotime($endtime) - strtotime($starttime)); 
echo gmdate("H:i", $difference); 
// 01:00 

輸出見https://3v4l.org/BkRFM

0

使用此代碼對時間的減法運算

$tt['endtime'] = '13:00:00'; 
$tt['starttime'] = '12:00:00'; 

$dif = strtotime($tt['endtime']) - strtotime($tt['starttime']); //here you can subtraction occurs 

echo gmdate("H:i", $dif); // In this step you got the correct output 01:00 
0

使用gmdate()

$dif = strtotime('13:00')-strtotime('12:00'); 
echo gmdate("H:i", $dif);