我有一个日期范围($ startDate,$ endDate)。根据给出的范围,我需要每个月循环并运行一个特定的工作。
目前我正在这样做:
//Get startOf and endOf to cover entire month of range.
$currentDate = Carbon::parse($startDate)->startOfMonth();
$endDate = Carbon::parse($endDate)->endOfMonth();
//Number of weeks helps with the for loop
$numberOfMonths = $currentDate->diffInMonths($endDate);
for ($x = 0; $x <= $numberOfMonths; $x++)
{
//something here
$currentDate = $currentDate->addMonths(1);
}
这是用碳和PHP完成的。当前方法的问题在于diffInMonths显然简单地除以30而有些跳过2月因为它只有28天。
我每个月都需要某种循环。因此,例如,如果我的日期范围是2018-01-15和2018-04-25,它应该循环四次,1/2/3/4并停止。目前正在进行1/3/4并停止。
是否有一些简单的解决方法,我可以在一个日期范围内循环几个月?