php查找平均时间(分秒毫秒)
我目前有一个数组的格式是这样的php查找平均时间(分秒毫秒),php,datetime,average,Php,Datetime,Average,我目前有一个数组的格式是这样的数组($time,$time,$time,$time,$time)其中$time是一个字符串,格式是这样的m:ss:MM,其中m=分钟,s=秒,m=毫秒 我该怎么做? 我大致知道如何做到这一点,即: 将每个字符串转换为时间戳 循环遍历数组并调用平均值函数或进行数学计算(不确定它如何处理unix时间戳) 谢谢你的帮助我相信PHP中没有神奇的函数可以做到这一点。你必须写一些东西来总结所有的值,然后除以元素的数量。您可以为此创建一个函数,方法是输入两个值并分解时间,求和值
数组($time,$time,$time,$time,$time)
其中$time
是一个字符串,格式是这样的m:ss:MM
,其中m
=分钟,s
=秒,m
=毫秒
我该怎么做?我大致知道如何做到这一点,即: 将每个字符串转换为时间戳
循环遍历数组并调用平均值函数或进行数学计算(不确定它如何处理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);
}
我相信PHP中没有神奇的函数可以做到这一点。你必须写一些东西来总结所有的值,然后除以元素的数量。您可以为此创建一个函数,方法是输入两个值,分解时间,求和值,验证(比如,如果秒大于60,您可以将其转换为额外的一小时),然后您可以用相同的方法除以元素数,从而最终得到平均时间。@Matheuslourero您能给我看一下这方面的代码吗?我是网络开发的新手。谢谢如果它起作用,我将连根拔起并标记为已回答。我只是添加了一个答案,因为它不适合作为评论。看看它,它能做你不想做的事情,还有更多。@vascowhite这支持我的时间格式吗?它是否也以相同的格式显示输出?看起来不像。我如何让它进行无限量的争论?该函数最少需要14次,最多需要17次。您必须在数组中对每个值进行
运算,将所有值相加,然后除以使用array_count()
function.FWIW可以获得的值的数量。您只需从$result='00:00'开始在foreach循环之前的code>变量,然后在循环中使用$result=sumTime($result,$timeOfThisLoop)代码>。循环结束后,您将在$result
变量中获得最终总和。基本上,您还必须基于我编写的相同算法创建一个函数,您可能希望调用divideTime()
,并获得平均值,如$average=divideTime($result,$numberOfElements)代码>。对不起,我不太明白。你能把代码放在答案里让它更容易理解吗?@iProgram,这个网站是为了帮助人们解决他们的疑问、问题等,但不是为了免费开发东西。我已经编写了您需要的代码中更复杂的部分。你必须从这里得到东西,做你自己的代码,如果你有任何疑问,你可以在这里问,但我不会为你编码。也许你想要一名教师或一名开发人员,你必须为此付费。对此我很抱歉。