date_default_timezone_set('UTC');
$start_date = '2010-01-31';
$end_date = '2010-12-31';
while (strtotime($start_date) <= strtotime($end_date)) {
echo "$start_date\n";
$d = new DateTime($start_date);
$d->modify('last day of next month');
$start_date = $d->format('Y-m-d');
}
/*
run:
2010-01-31
2010-02-28
2010-03-31
2010-04-30
2010-05-31
2010-06-30
2010-07-31
2010-08-31
2010-09-30
2010-10-31
2010-11-30
2010-12-31
*/