我在获得平均值方面存在时间计算问题。
我有这个总结的通话时间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 :(得分: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);
答案 1 :(得分:0)
一种简单的方法,最长可达24小时。另外,采用Atlis方法并搜索将秒转换为日期的方法。
$time = '06:03:05';
$seconds = strtotime("1970-01-01 $time UTC");
$average = $seconds/175;
echo gmdate('H:i:s', $average);