Domanda

Ciao, ho bisogno di calcolare un tempo medio tra una data dateinterval.

In realtà ho un po 'dateinterval come questo:

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

Ecco l'output:

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

Devo calcolare il tempo medio tra questi intervalli. Qui è solo minuto e secondo, ma potrebbe essere mese o anno.

Non riesco a trovare un buon modo per calcolarlo facilmente.Posso semplicemente aggiungere ogni dateinterval con una conversione come questa:

sec + 60xmin + 3600xHour ...

E loro giocano con Modulo (%).

Ma spero che ci sia un altro modo?

È stato utile?

Soluzione

Dovresti moltiplicare i minuti con 60, le ore con 3600, ecc., Fino a quando non ci sono solo secondi rimasti.Da lì è facile calcolare la media.

Altri suggerimenti

Ok non fa ho trovato lo sth migliore, scrivo solo questo:

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

Non è perfetto, ma meglio di niente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top