2011-07-19 174 views
2

這裏是我的功能計算時間差(PHP)

<?php  
//Find time difference 
    function timeDifference($timeEnd, $timeStart){ 
     $tResult = strtotime($timeEnd) - strtotime($timeStart); 
     return date("G:i", $tResult-3600); 
    } 
?> 

和示例

<?php 
    echo timeDifference(12:00:00,08:30:00); 
?> 

在我的本地結果是好的,但在網上我的服務器上它顯示21:30時,它應該3:30。有什麼可以做到的?

UPDATE

這裏我對PHP 5.2

解決方案
<?php 
//Find time difference 
function timeDifference($timeEnd, $timeStart){ 
    $tResult = round(abs(strtotime($timeEnd) - strtotime($timeStart))); 
    return gmdate("G:i", $tResult); 
} 
?> 

感謝您的幫助球員

回答

4

如果你使用PHP 5.3,它帶有一個內置的date_diff()功能。

這可能比試圖調試自己的功能更容易。

順便說一句,你的代碼已經給:

echo timeDifference(12:00:00,08:30:00); 

是永遠不會工作,因爲你沒有報價aruond的時間字符串。我認爲這是一個錯誤的問題,因爲你聲稱函數返回結果(即使它們不正確)

+0

我有5.2.17 :(不能使用它 – Warface

+0

@Warface - 你真的應該升級; 5.2不再支持(我明白這不總是一個選項,但如果可能的話,你應該這樣做) – Spudley

+0

對於那些在5.3版本的人,我會接受這個答案,如果不是我的問題中的更新可能是另一種選擇。謝謝! – Warface