DateInterval médio php
-
11-12-2019 - |
Pergunta
Olá, preciso calcular um tempo médio entre alguns DateInterval.
Na verdade eu tenho alguns Dateinterval como este:
for ($i = 0 ; $i < count($startDate) ; $i++)
{
$diffTable[] = date_diff($finishDate[$i], $startDate[$i]);
echo $diffTable[$i]->format("%Y-%M-%d %H:%i:%s");
}
Aqui está a saída:
00-00-0 00:13:17
00-00-0 00:7:47
00-00-0 00:7:14
00-00-0 00:10:39
Preciso calcular o tempo médio entre esses intervalos.Aqui são apenas minutos e segundos, mas pode ser mês ou ano.
Não consigo encontrar uma boa maneira de calculá-lo facilmente.posso simplesmente adicionar cada dateInterval com uma conversão como esta:
sec + 60xmin + 3600xHour ...
E eles brincam com Módulo (%).
Mas espero que haja outra maneira?
Solução
Você deve multiplicar os minutos por 60, as horas por 3600, etc., até que restem apenas segundos.A partir daí é fácil calcular a média.
Outras dicas
Ok, até que eu tenha achado algo melhor, apenas escrevo isto:
function dateIntervalToSecond($interval)
{
return $interval->y * 31556926
+ $interval->m * 2629743
+ $interval->d * 6400
+ $interval->h * 3600
+ $interval->i * 60
+ $interval->s;
}
Não é perfeito, mas é melhor que nada.