我现在有被格式化这样array($time,$time,$time,$time,$time, $time)
其中$time
是格式化的,像这样m:ss:MM
一个字符串数组,其中m
=分钟,s
=秒和M
=毫秒。PHP发现在几分钟内秒毫秒的平均时间
我该怎么做?
我对如何做到这一点这是一个粗略的想法:
将每个字符串转换成时间戳
遍历数组并调用的平均功能或做数学计算(不知道它如何与UNIX时间戳的作品)。
感谢您的帮助
我现在有被格式化这样array($time,$time,$time,$time,$time, $time)
其中$time
是格式化的,像这样m:ss:MM
一个字符串数组,其中m
=分钟,s
=秒和M
=毫秒。PHP发现在几分钟内秒毫秒的平均时间
我该怎么做?
我对如何做到这一点这是一个粗略的想法:
将每个字符串转换成时间戳
遍历数组并调用的平均功能或做数学计算(不知道它如何与UNIX时间戳的作品)。
感谢您的帮助
我相信这里没有PHP的神奇功能。你必须写一些东西来总结所有的值,然后除以元素的数量。您可以通过输入两个值并分解时间,合计值,验证(如秒数大于60,您可以将其变为额外的分钟)来创建函数,然后您可以按照元素的数量,所以你可以终于有平均时间。
总和函数将是这样的:
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);
}
我如何得到它做无限量的参数?该函数最少需要14次,最大为17次。 – iProgram
您必须在数组中使用'foreach'来对所有值进行求和,然后除以array_count()可获得的值的数量'功能。 –
FWIW,你可以简单地在foreach循环之前以'$ result = '00:00:00';'变量开始,然后在循环中使用'$ result = sumTime($ result,$ timeOfThisLoop);'进行操作。循环结束后,您将在'$ result'变量中获得最终的总和。基本上,你还必须创建一个函数,它基于我写的你可能想调用'divideTime()'的算法,并得到像'$ average = divideTime($ result,$ numberOfElements)'这样的平均值。 –
,我相信也没有神奇的功能在PHP为。你必须写一些东西来总结所有的值,然后除以元素的数量。您可以通过输入两个值并分解时间,合计值,验证(例如秒数大于60,可以将其变成额外的小时)来创建函数,然后您可以按照元素的数量,所以你可以终于有平均时间。 –
@MatheusLoureiro你能告诉我那个代码吗?我是网页开发的新手。谢谢。如果它起作用,我会连根拔起并标记为已回答。 – iProgram
我刚刚添加了一个答案,因为它不适合作为评论。 –