使用Carbon - Laravel比较两对日期

时间:2017-07-19 11:14:31

标签: laravel date php-carbon

用户选择了日期,我得到该日期并再生成3个日期

$start_date = Carbon::parse($request->start_date);
$m1 = $start_date->addMonths(1);
$m3 = $start_date->addMonths(3);
$m6 = $start_date->addMonths(6);

然后我得到了比较日期所需的数据库值,如下所示

$model =  Model::WhereDate('start_date','>',$request->start_date)->get(); 

我循环使用

$duration = 0;    
foreach ($model as  $value) {
      if (Carbon::parse($value->start_date)->between($start_date, $m3) || Carbon::parse($value->end_date)->between($start_date, $m3)) {
                $duration = 1;
      }
      if (Carbon::parse($value->start_date)->between($start_date, $m3) || Carbon::parse($value->end_date)->between($start_date, $m3)) {
                $duration = 3;
      } 
      if (Carbon::parse($value->start_date)->between($start_date, $m6) || Carbon::parse($value->end_date)->between($start_date, $m6)) {
                $duration = 6;
      } 
}

有更好的方法吗?我不能像这样Carbon::parse($value->start_date)->between($start_date, $m6) || Carbon::parse($value->end_date)->between($start_date, $m6)

进行比较

PS - 这不是为了获得日期之间的持续时间,而是在给定的日期范围内比较它们是否在该范围内。扭曲是比较日期也是范围日期。

如果有任何不清楚的部分,我为我的语言道歉;让我知道我会解释它

0 个答案:

没有答案