我目前有一个数组的格式是这样的array($time,$time,$time,$time,$time, $time)
,其中$time
是一个字符串格式的m:ss:MM
,其中m
=分钟,s
=秒,M
=毫秒。
我该怎么做呢?
关于如何做到这一点,我有一个粗略的想法:
将每个字符串转换为时间戳
循环遍历数组并调用平均函数或进行数学计算(不确定它如何与Unix时间戳一起工作)。
Thanks for the help
我相信PHP中没有神奇的函数。你必须写一些东西来把所有的值加起来,然后除以元素的数量。你可以为它创建一个函数,输入两个值并将时间展开,将值相加,验证(例如,如果秒大于60,你可以将其转换为额外的分钟),然后你可以做同样的事情除以元素的数量,这样你就可以最终得到平均时间。
sum函数应该是这样的:
function sumTime($time1, $time2) {
$time1Exp = explode(':', $time1);
$time2Exp = explode(':', $time2);
$timeResult = array();
$extraMinutes = $extraSeconds = 0;
//sum milliseconds
$timeResult[2] = $time1Exp[2] + $time2Exp[2];
if($timeResult[2] >= 100) {
$extraSeconds = floor($timeResult[2] / 100);
$timeResult[2] -= $extraSeconds * 100;
}
$timeResult[1] = $time1Exp[1] + $time2Exp[1] + $extraSeconds;
if($timeResult[1] >= 60) {
$extraMinutes = floor($timeResult[1] / 60);
$timeResult[1] -= $extraMinutes * 100;
}
$timeResult[0] = $time1Exp[0] + $time2Exp[0] + $extraMinutes;
return implode(':', $timeResult);
}