PHP 5.3
$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) { echo $dt->format("Y-m") . "<br>n";}PHP 5.4或更高版本
$start = (new DateTime('2010-12-02'))->modify('first day of this month');$end = (new DateTime('2012-05-06'))->modify('first day of next month');$interval = DateInterval::createFromDateString('1 month');$period = new DatePeriod($start, $interval, $end);foreach ($period as $dt) { echo $dt->format("Y-m") . "<br>n";}我们将开始日期和结束日期修改为每月第一天的部分很重要。如果我们不这样做,则当前日期要比2月的最后一天高(例如,非-年为28,leap年为29),则跳过2月。



