- var_export: documentation ( source)
- date: documentation ( source)
<?php
function rangeOfMonths($prior, $ahead, $baseYear = null, $baseMonth = null) {
$baseYear = $baseYear ?: date('Y');
$baseMonth = $baseMonth ?: date('m');
$rangeStart = new DateTime($baseYear . '-' . $baseMonth . '-01 23:59:59');
$rangeEnd = clone($rangeStart);
$rangeStart->modify("-{$prior} month");
$rangeEnd->modify("+{$ahead} month +1 day");
$period = new DatePeriod($rangeStart, new DateInterval('P1M'), $rangeEnd);
$monthsList = [];
foreach ($period as $i => $dateObject) {
$monthsList[] = [
'year' => $dateObject->format('Y'),
'nr_month' => $dateObject->format('n'),
'month_name' => $dateObject->format('M'),
'current' => $i == $prior
];
}
return $monthsList;
}
var_export(rangeOfMonths(5, 6));