我路过fromdate
和 todate
从 View 到 Controller 。我想从数据库中打印这些日期之间的时间,但出现如下错误:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Call to a member function format() on string
我的查看页面 :
<div class="col-sm-4">
{!! Form::open (['url' => 'admin/ad']) !!}
<div class="form-group">
{!! Form::label('', 'From date') !!}
{!! Form::date('fromdate', '', ['class' => 'form-control']) !!}
{!! Form::label('', 'To date') !!}
{!! Form::date('todate', '', ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit(('submit'), ['class' => 'btn btn-primary btn-block']) !!}
{!! Form::close() !!}
</div>
</div>
我的 Controller 页面 :
$report = $request->report;
$fromdate = $request->fromdate;
$start_date = date("Y-m-d H:i:s", strtotime($fromdate));
$todate = $request->todate;
$end_date = date("Y-m-d H:i:s", strtotime($todate));
$users = Report::whereBetween('created_at', [
$start_date->format('Y-m-d') . " 00:00:00",
$end_date->format('Y-m-d') . " 23:59:59"
])->get();
最佳答案
使用 Carbon处理日期解析和格式化的库:
$users = Report::whereBetween('created_at', [
Carbon::parse($request->fromdate)->toDateTimeString(),
Carbon::parse($request->todate)->toDateTimeString()
])->get();
见 Modifiers 部分为
startOfXXXX
格式:$users = Report::whereBetween('created_at', [
Carbon::parse($request->fromdate)->startOfDay(), // 2012-01-31 00:00:00
Carbon::parse($request->todate)->endOfDay() // 2012-01-31 23:59:59
])->get();
关于php - 在 Laravel 的字符串上调用成员函数 format(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50020692/