通过特定日期范围的碳循环错过了一天

Carbon loop through specific date range misses one day

解决方案:

 $mDatePeriod = new \DatePeriod(

          Carbon::parse("First Monday of January 2018"),
          CarbonInterval::week(),
          Carbon::parse("Last Monday of January 2018")->addSecond(1)
 );

我是 运行 Laravel 5.0,我正在使用 Carbon 库计算以下内容。

示例:

我想要 20181 月 的所有 星期一 ,所以我正在使用下面的代码:

 $mDatePeriod = new \DatePeriod(

          Carbon::parse("First Monday of January 2018"),
          CarbonInterval::week(),
          Carbon::parse("Last Monday of January 2018")
 );

如果我遍历 $mDatePeriod 并回显当天:

foreach($mDatePeriod as $currentDay){

 echo $currentDay->toDateString() . "<br/>";

}

输出将是:

2018-01-01
2018-01-08
2018-01-15
2018-01-22

这不是我所期待的,因为缺少 2018-01-29(上周一)。

如果我使用 dd($mDatePeriod_Day) 上周一显示为日期结束:

我在这里错过了什么?

编辑 1:发现关于 CarbonInterval::week() 的一些有趣的东西,它有一些属性。难道是first_last_day_of? :

你可以做的是在最后一个条件下添加时间

Carbon::parse("Last Monday of January 2018 00:00:01")

然后就可以得到日期了