获取 PHP 中两个日期之间的所有月份

pol*_*1er 2 php datetime date

这个问题似乎与大约一个月的旧问题相似,但我有一个特殊问题。我不是要计算两个日期之间的月份数,而是要计算两个日期中包含的月份数。我解释。我有 2 个日期:

$begin = new DateTime( '2014-07-20' );
$end = new DateTime( '2014-10-10' );
Run Code Online (Sandbox Code Playgroud)

在这两个日期之间,我有 4 个月:七月、八月、九月、十月。但是使用我正在使用的脚本,我无法找到包含 4 个月但只有 3 个月的脚本。这是脚本:

$interval = DateInterval::createFromDateString('1 month');

$period = new DatePeriod($begin, $interval, $end);
$counter = 1;

foreach($period as $dt) {
    echo $dt->format( 'm' );
    $counter++;
}

echo $counter;
Run Code Online (Sandbox Code Playgroud)

如何循环计算所有这 4 个月?

Gla*_*vić 5

你可以用简单的while()循环来做到这一点:

$begin = new DateTime('2014-07-20');
$end = new DateTime('2014-10-10');

while ($begin <= $end) {
    echo $begin->format('Y-m'), "\n";
    $begin->modify('first day of next month');
}
Run Code Online (Sandbox Code Playgroud)

demo