DATEVA DATEVERVAL PHP.
-
11-12-2019 - |
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?
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.