$end = strtotime('2011-09-01');
$start = strtotime('today');
while($start > $end)
{
echo date('F Y', $start) . "<br>";
$start = strtotime("-1 month", $start);
}
结果: 2014年4月 2014年3月 2014年3月 2014年2月 2014年一月 2013年12月 ...等
为什么我要在2014年3月两次? 如果有人可以提供帮助,谢谢。
答案 0 :(得分:2)
我能够使用DateTime()
。从结束日期开始,我从本月的第一天开始。这使得每个月的天数无关紧要。然后,我所要做的就是颠倒日期数组,使其符合您想要的格式。
$start = new DateTime('2011-09-01');
$end = new DateTime();
$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, $end);
$months= array();
foreach ($period as $dt) {
$months[] = $dt->format('F Y');
}
$months = array_reverse($months);
echo implode('<br>', $months);