2013-06-30 68 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

感谢分享:) –