Вызов функции-члена format () для строки в laravel - PullRequest
0 голосов
/ 25 апреля 2018

Я передаю fromdate и todate от вида к контроллеру.Я хочу напечатать промежутки между этими датами из базы данных, но получаю сообщение об ошибке:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Вызов функции-члена format () для строки

страница моего просмотра :

<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>

страница моего контроллера :

$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();

Ответы [ 4 ]

0 голосов
/ 25 апреля 2018
$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,$end_date])->get();
0 голосов
/ 25 апреля 2018

Вы также можете использовать DateTime

$report = $request->report;
$fromdate = $request->fromdate; 
$start_date = DateTime::createFromFormat("U", strtotime($fromdate));
$todate = $request->todate;
$end_date = DateTime::createFromFormat("U", 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(); 
0 голосов
/ 25 апреля 2018

хорошо, вы меня используете

 {{ Carbon\Carbon::parse($object->yourdate_fromdatabase)->format('Y-m-d') }}
0 голосов
/ 25 апреля 2018

Используйте библиотеку Carbon для обработки анализа и форматирования даты:

$users = Report::whereBetween('created_at', [
    Carbon::parse($request->fromdate)->toDateTimeString(), 
    Carbon::parse($request->todate)->toDateTimeString()
])->get();

См. Раздел Модификаторы для форматирования 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...