[英]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")
然后,您可以获取日期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.