通过碳获取两个日期之间的所有

时间:2018-02-22 16:41:27

标签: laravel

我找到了解决方案,代码就像这样

$from = Carbon::parse('2016-10-01');
$to = Carbon::parse('2016-10-05');
$dates = [];
  for($d = $from; $d->lte($to); $d->addDay()) {
      $dates[] = $d->format('d-m-Y');
  }
  return view('register.index', compact('dates'));

结果

01-10-2016 
02-10-2016 
03-10-2016 
04-10-2016 
05-10-2016 

但是我在更改

时遇到了错误
'2016-10-01' and '2016-10-05'

使用这样的变量

$start_date = Event::select('start_date')->where('id', '=', '1')->get();
$close_date = Event::select('close_date')->where('id', '=', '1')->get();
  $from = Carbon::parse($start_date);
  $to = Carbon::parse($close_date);

错误DateTime::__construct(): Failed to parse time string

某人可能会提供帮助

3 个答案:

答案 0 :(得分:2)

检查此代码,假设Event只有一条特定条件的记录。

$dates = Event::select(['start_date','close_date'])->where('id', '=', '1')->first();
$from = Carbon::parse($dates->start_date);
$to = Carbon::parse($dates->close_date);

答案 1 :(得分:1)

试试这个:

$event = Event::find(1);
$from = Carbon::parse($event->start_date);
$to = Carbon::parse($event->close_date);

答案 2 :(得分:0)

虽然其他答案很棒(使用Carbon的解析方法),但有一种更简单,更流畅的方式。在事件模型上,您可以自动将日期或日期时间字段转换为Carbon对象。这样,所有对这些字段的引用都不必解析。

在Laravel 5.6和将来,使用'casts'属性。如果您正在使用以前的版本,请使用protected dates属性。