получить количество дней с заданных дат в массиве php

Я пытаюсь получить количество дней от первой даты до второй даты, а затем со второй даты до третьей даты и так далее. У меня есть такой массив

$dates = array( 2016 - 02 - 01, 2016 - 03 - 01, 2016 - 04 - 01, 2016 - 05 - 01, 2016 - 06 - 01, 2016 - 07 - 01, 2016 - 09 - 01, 2016 - 11 - 01, 2016 - 12 - 01, 2017 - 01 - 01, 2017 - 12 - 01 ); 

Я хочу получить количество дней с 2016-02-01 по 2016-03-01, а затем с 2016-03-01 по 2016-04-01 и т. Д., Если вы заметили, что в датах есть некоторые пробелы, такие как в них прыгают более 1 месяца. И я хочу это в таком массиве

 array()( [0] => 0, [1] => 30, [2] => 60 //so on ... ) 

Вот как я это делаю, но я получаю ошибки, такие как uninitialized string offset и я думаю, что я делаю неправильно, скорее всего,

 public function rangeDates() { $dates = array( '2016-02-01', '2016-03-01', '2016-04-01', '2016-05-01', '2016-06-01', '2016-07-01', '2016-09-01', '2016-11-01', '2016-12-01', '2017-01-01', '2017-12-01' ); $datez = array(); $index = 0; $indexone = 1; foreach($dates as $date) { $datez = round(abs(strtotime($date[$index]) - strtotime($date[$indexone])) / 86400); $index++; $indexone++; } echo $datez; } 

Даты в строчном формате, дополнительная информация, о которой я забыл упомянуть, заключается в том, что дни должны быть добавлены, например, если мы возьмем только годы

 array(11) ( [0] => (int) 0 [1] => (int) 365 [2] => (int) 730 [3] => (int) 1095 [4] => (int) 1460 [5] => (int) 1825 [6] => (int) 2190 [7] => (int) 2555 [8] => (int) 2920 [9] => (int) 3285 [10] => (int) 3650 

Это все о том, что вам нужно. Прокрутите массив дат, затем вычислите разницу дат соответственно. Ваш цикл будет выполняться за малым размером всего массива. От интервала просто вызовите дни и сохраните его в массиве.

 $dates = array( "2016-02-01", "2016-03-01", "2016-04-01", "2016-05-01", "2016-06-01", "2016-07-01", "2016-09-01", "2016-11-01", "2016-12-01", "2017-01-01", "2017-12-01" ); $datez = array(); $date = array(); $datez[] = 0; for($i = 1; $i < count($dates) - 1; $i++){ $start_date = $dates[$i-1]; $end_Date = $dates[$i]; $date1 = new DateTime($start_date); $date2 = new DateTime($end_Date); $interval = $date1->diff($date2); $date[] = $interval->days; $datez[] = array_sum($date); } print_r($date); print_r($datez); 

Интернет-пример