Carbon PHP循环每个月的日期范围

时间:2018-04-27 17:31:40

标签: php laravel php-carbon

我有一个日期范围($ 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并停止。

是否有一些简单的解决方法,我可以在一个日期范围内循环几个月?

0 个答案:

没有答案