PHP 日期按月递增,不超过当月的最后一天


PHP date increment by month not exceeding last day of month?

我希望在开始日期和结束日期之间的每个月份都在同一天。只是如果一天中的月份对特定月份无效,则需要该月的最后一天。有剧本吗?已经做的是。

$startdate='2010-01-30';
          $enddate='2011-01-30';
            while ($startdate <= $enddate)
             { 
              echo date('Y-m-d', $startdate ) . "'n";
              $startdate = strtotime('+1 month', $startdate);/// for case of feb 28 days last date it should disply as it skips it
            }

预期输出:对于输入$startdate='2012-01-30'; $enddate='2013-12-30'结果应该是这样的==>

    _2012-12-30_
2013-01-30
**2013-02-28**
2013-03-30
2013-04-30
2013-05-30
2013-06-30
2013-07-30
2013-08-30
2013-09-30
2013-10-30
2013-11-30
_2013-12-30_

循环使用for并将 $i 个月添加到开始日期,而不是不断向运行值添加一个月。这样它就不会因为从 3 月开始的 2 月而跳到第 28 天(或第 29 天)。