2011-06-06 92 views
0

可能重複:
Get time difference獲取時間差

嗨,我需要得到兩個時間在PHP之間的時間差。

$starttime=time(); 
$endtime=time(); 

如何獲取小時,分鐘和秒在PHP

感謝

+0

Fyi,如果是用於分析:使用'microtime(true)'而不是'time()' – ThiefMaster 2011-06-06 09:26:42

回答

3
echo ($endtime-$starttime); 

會得到你的秒數。

如果您需要了解小時就可以這樣做:

$seconds = ($endtime-$starttime); 
echo floor($seconds/3600).' hours'; 
+2

'$ starttime = 10000; $ endtime = 11801;'=>'1801秒= 1小時'。你必須使用'floor()'。 – KingCrunch 2011-06-06 09:33:32

+0

@king:修正+1 .... – dynamic 2011-06-06 09:34:06

0

看一看的strftime

$difference = $endtime-$starttime; 
echo strftime('%H:%M:%S',$difference); 
+0

手冊頁:http://uk2.php.net/manual/en/function.strftime.php 雖然這會導致時區出現問題,基本上,您在UNIX紀元之後花費幾小時,幾分鐘和幾秒鐘的時間戳。例如,當時區在BST上時,使用'1'的時間戳(這種情況下的差異)給出結果'01:00:01',這顯然是錯誤的。將'date.timezone'設置爲'America/Denver'(作爲例子),現在'1:'的時間戳爲'17:00:01'。 – Aether 2011-06-06 09:45:49

2
$starttime=time(); 
$endtime=time(); 

$diff = $endtime - $starttime; 
$hours = floor($diff/3600); 
$minutes = floor (($diff % 3600)/60); 
$seconds = $diff % 60; 
0

借用的代碼here

<?php 
    $s0 = mktime(1, 2, 3); 
    $s1 = mktime(4, 5, 6); 
    $d0 = $s1 - $s0; 
    $dh = floor($d0/60/60); 
    $dm = $d0 - $dh * 60 * 60; $dm = floor($dm/60); 
    $ds = $d0 - $dh * 60 * 60 - $dm * 60; 
    echo sprintf(" 
     Start Time..: %s<br /> 
     End Time....: %s<br /> 
     Time to go..: %d hours, %d minutes, %d seconds 
     ", 
     date("Y-m-d h:i:s A", $s0), 
     date("Y-m-d h:i:s A", $s1), 
     $dh, 
     $dm, 
     $ds 
    ); 
?>