2013-06-30 106 views
1

我在獲得平均時間計算問題。如何獲得平均時間

我有這個總結通話時間06:03:05,我想獲得平均175電話。

date_default_timezone_set('America/Chicago'); 
    $ts = strtotime("06:03:05"); 
    echo date("H:i:s", $ts/175); 

我得到: 12點26分25秒

我甚至不知道爲什麼我想出這個龐大無比的平均時間。我做對了嗎?請幫忙。

+0

您不能像整數一樣使用'$ ts'來計算'$ ts/175'。 – tranisstor

回答

1

問題在於您的strtotime調用(沒有日期組件)默認爲當前日期。所以$ts是一個很多很多大於只是時間部分的總和;它還包括日期部分。

我會避免使用這樣的時間函數。根據小時,分鐘和秒計算秒數很簡單。一旦你有了,你可以使用date()來回復格式化的時間,就像你在那裏一樣。

嘗試更多的東西是這樣的:

function getTimeAverage($hours, $minutes, $seconds, $division) { 
    $seconds += ($hours * 3600) + ($minutes * 60); 
    return $seconds/$division; 
} 

$average = getTimeAverage(6, 3, 5, 175); 

echo gmdate("H:i:s", $average); 
+0

它必須是'gmdate('H:i:s',$ average);'。但這隻能工作24小時。 – bitWorking

+0

好點,謝謝你。我編輯了答案。 - 我住在格林尼治標準時間,所以我傾向於忘記這些時區問題:) – Atli

+0

哦..我現在得到它..感謝一個全傢伙... Atli和redreggae –

0

一個簡單的方法只工作長達24小時。否則採取Atlis的方法,並尋找一種方法將秒數轉換爲日期。

$time = '06:03:05'; 
$seconds = strtotime("1970-01-01 $time UTC"); 
$average = $seconds/175; 
echo gmdate('H:i:s', $average); 
+0

感謝分享:) –