通过特定日期范围的碳循环错过了一天
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 库计算以下内容。
示例:
我想要 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
? :
你可以做的是在最后一个条件下添加时间
Carbon::parse("Last Monday of January 2018 00:00:01")
然后就可以得到日期了
解决方案:
$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
? :
你可以做的是在最后一个条件下添加时间
Carbon::parse("Last Monday of January 2018 00:00:01")
然后就可以得到日期了