<?php
$start = new DateTime('2016-12-02');
$start->modify('first day of this month');
$end = new DateTime('2018-01-01');
$end->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("F 'y") . PHP_EOL;
}
December '16
January '17
February '17
March '17
April '17
May '17
June '17
July '17
August '17
September '17
October '17
November '17
December '17
January '18