这个问题似乎与大约一个月的旧问题相似,但我有一个特殊问题。我不是要计算两个日期之间的月份数,而是要计算两个日期中包含的月份数。我解释。我有 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 个月?
你可以用简单的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)