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

我什至不知道为什么我想出这个非常大的时间平均值。我这样做对吗?请帮忙。

4

2 回答 2

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);
于 2013-06-30T13:32:53.713 回答
0

一种简单的方法,最多只能工作 24 小时。否则采取 Atlis 方法并寻找一种将秒转换为日期的方法。

$time = '06:03:05';
$seconds = strtotime("1970-01-01 $time UTC");
$average = $seconds/175;
echo gmdate('H:i:s', $average);
于 2013-06-30T13:41:06.777 回答