Pregunta

Hola, necesito calcular un tiempo promedio entre algunos Fechainterval.

En realidad, tengo alguna fecha:

for ($i = 0 ; $i < count($startDate) ; $i++)
    {
          $diffTable[] = date_diff($finishDate[$i], $startDate[$i]);
          echo $diffTable[$i]->format("%Y-%M-%d %H:%i:%s");
    }

Aquí está la salida:

00-00-0 00:13:17
00-00-0 00:7:47
00-00-0 00:7:14
00-00-0 00:10:39

Necesito calcular el tiempo promedio entre estos intervalos. Aquí es un minuto y segundo, pero podría ser mes u año.

No puedo encontrar una buena manera de calcularlo fácilmente.Simplemente puedo agregar cada fecha intencional con una conversión como esta:

sec + 60xmin + 3600xHour ...

y juegan con Modulo (%).

¿Pero espero que haya otra manera?

¿Fue útil?

Solución

Debe multiplicar los minutos con 60, las horas con 3600, etc., hasta que solo quedan segundos.Desde allí es fácil calcular el promedio.

Otros consejos

OK UPIF, encontré algo mejor, simplemente escribo esto:

function dateIntervalToSecond($interval)
    {
        return $interval->y     * 31556926 
                + $interval->m  * 2629743
                + $interval->d  * 6400
                + $interval->h  * 3600
                + $interval->i  * 60
                + $interval->s;
    }

No es perfecto, pero mejor que nada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top