繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM