Question

Bonjour, j'ai besoin de calculer un temps moyen entre certains DateInterval.

En fait, j'ai un Dateinterval comme celui-ci :

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

Voici le résultat :

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

Je dois calculer le temps moyen entre ces intervalles.Ici, ce ne sont que des minutes et des secondes, mais cela pourrait être un mois ou une année.

Je ne trouve pas de bon moyen de le calculer facilement.je peux simplement ajouter chaque dateInterval avec une conversion comme celle-ci :

sec + 60xmin + 3600xHour ...

Et ils jouent avec Modulo (%).

Mais j'espère qu'il y a un autre moyen ?

Était-ce utile?

La solution

Vous devez multiplier les minutes par 60, les heures par 3600, etc., jusqu'à ce qu'il ne reste plus que des secondes.A partir de là, il est facile de calculer la moyenne.

Autres conseils

Ok, en attendant d'avoir trouvé quelque chose de mieux, j'écris juste ceci :

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

Ce n'est pas parfait, mais c'est mieux que rien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top