解决方案:
$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库来计算以下内容。
示例:
我希望 2018 的所有星期一 1月,所以我使用以下代码:
$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
吗? :
答案 0 :(得分:2)
您可以做的是在最后一个条件中添加时间
Carbon::parse("Last Monday of January 2018 00:00:01")
然后你就可以得到约会。