- var_dump: documentation ( source)
<?php
/**
* @param string $start
* @param string $end
*
* @return string[]
*/
function date_period_grid($start, $end)
{
$start = new DateTime($start);
$end = new DateTime($end);
$i = $end->diff($start);
$days = $i->days;
$months = $i->y * 12 + $i->m + ($i->d ? 1 : 0);
$years = $i->y + (($i->m || $i->d) ? 1 : 0);
if ($years > 1) {
$period = new DatePeriod($start, new DateInterval('P1Y'), $years);
} elseif ($months > 1) {
$period = new DatePeriod($start, new DateInterval('P1M'), $months);
} else {
$period = new DatePeriod($start, new DateInterval('P1D'), $days);
}
$result = [];
foreach ($period as $date) {
$result[] = $date->format('Y-m-d');
}
return $result;
}
var_dump(date_period_grid('2012-07-01', '2015-11-01'));