我在獲得平均時間計算問題。如何獲得平均時間
我有這個總結通話時間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秒
我甚至不知道爲什麼我想出這個龐大無比的平均時間。我做對了嗎?請幫忙。
我在獲得平均時間計算問題。如何獲得平均時間
我有這個總結通話時間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秒
我甚至不知道爲什麼我想出這個龐大無比的平均時間。我做對了嗎?請幫忙。
問題在於您的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);
它必須是'gmdate('H:i:s',$ average);'。但這隻能工作24小時。 – bitWorking
好點,謝謝你。我編輯了答案。 - 我住在格林尼治標準時間,所以我傾向於忘記這些時區問題:) – Atli
哦..我現在得到它..感謝一個全傢伙... Atli和redreggae –
一個簡單的方法只工作長達24小時。否則採取Atlis的方法,並尋找一種方法將秒數轉換爲日期。
$time = '06:03:05';
$seconds = strtotime("1970-01-01 $time UTC");
$average = $seconds/175;
echo gmdate('H:i:s', $average);
感謝分享:) –
您不能像整數一樣使用'$ ts'來計算'$ ts/175'。 – tranisstor