- date: documentation ( source)
- strtotime: documentation ( source)
<?php
$start = new DateTime('2010-12-02');
$start->modify('first day of this month');
$end = new DateTime('2012-05-06');
$end->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
$month = $dt->format('m');
$year = $dt->format('Y');
if(date('Y',strtotime('2012-05-06')) != $year && date('m',strtotime('2012-05-06')) != $month)
echo $dt->format("Y-m") . PHP_EOL;
}