Получите средний интервал между двумя датами PHP

Поэтому у меня есть следующий массив ( $lifeSpanArray ), и я рассчитываю рассчитать средний интервал между двумя датами.

Что я до сих пор, но я думаю, что я думаю немного не так:

 <?php foreach ($lifeSpanArray as $key) { $newTimeAdd = new DateTime($key["timeAdded"]); $newTimeRead = new DateTime($key["timeRead"]); $interval = $newTimeAdd->diff($newTimeRead); var_dump($interval); } ?> 

Какие результаты:

 Array ( [0] => Array ( [timeAdded] => 07/15/2014 [timeRead] => 07/15/2014 ) [1] => Array ( [timeAdded] => 07/14/2014 [timeRead] => 07/14/2014 ) [2] => Array ( [timeAdded] => 07/13/2014 [timeRead] => 07/15/2014 ) [3] => Array ( [timeAdded] => 07/13/2014 [timeRead] => 07/13/2014 ) [4] => Array ( [timeAdded] => 07/12/2014 [timeRead] => 07/12/2014 ) [5] => Array ( [timeAdded] => 07/12/2014 [timeRead] => 07/12/2014 ) [6] => Array ( [timeAdded] => 07/12/2014 [timeRead] => 07/12/2014 ) [7] => Array ( [timeAdded] => 07/12/2014 [timeRead] => 07/12/2014 ) [8] => Array ( [timeAdded] => 07/12/2014 [timeRead] => 07/12/2014 ) [9] => Array ( [timeAdded] => 07/11/2014 [timeRead] => 07/11/2014 ) [10] => Array ( [timeAdded] => 07/11/2014 [timeRead] => 07/11/2014 ) [11] => Array ( [timeAdded] => 07/10/2014 [timeRead] => 07/11/2014 ) [12] => Array ( [timeAdded] => 07/10/2014 [timeRead] => 07/10/2014 ) ) 

Solutions Collecting From Web of "Получите средний интервал между двумя датами PHP"

Попробуйте следующее:

  <?php $intervals = array(); foreach ($lifeSpanArray as $key) { $newTimeAdd = new DateTime($key["timeAdded"]); $newTimeRead = new DateTime($key["timeRead"]); $interval = $newTimeAdd->diff($newTimeRead); $intervals[] = $interval->days;//get days } if(!empty($intervals)) { $average = average($intervals); } function average($arr) { return array_sum($arr)/count($arr); } ?> 

Ваше решение верное, но не подделывает вызов метода format () для возвращаемого объекта из diff.

Пример из PHP.net:

 <?php $datetime1 = new DateTime('2009-10-11'); $datetime2 = new DateTime('2009-10-13'); $interval = $datetime1->diff($datetime2); echo $interval->format('%R%a days'); ?>