laravel-5.4: получить записи, которые были созданы create_at со вчерашнего дня в 5 часов и до сих пор - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно получить записи, созданные от yesterday at 5.00PM до now, поэтому, если я попытаюсь сделать следующее:

  • Если я открою систему при 8am начало запроса yesterday 5pmдо now (8:00)
  • Если я открою систему в 1pm запрос начнется yesterday 5pm до now (13:00)

... и т. д.

Вот моя функция.

public function allNewOrdersToday() {
        $allNewOrders = ( new OrderList() )
            ->where( 'created_at', '>=', Carbon::yesterday() )

        return $allNewOrders;
    }

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Используя Carbon, вы сможете запросить, где дата превышает Yesturday 5:00pm, используя yesturday() и setTime() углеродные методы:

use Carbon\Carbon;

... 

public function allNewOrdersToday() {
    return OrderList::whereDate('created_at', '>=', Carbon::yesterday()->setTime(17, 00, 00)->toDateTimeString())
        ->get();
}

В этом примере я изменил(new OrderList()) до OrderList::..., поскольку вы используете eloquent модели и можете вызывать методы построителя запросов без необходимости нового экземпляра класса.

0 голосов
/ 20 сентября 2018

Попробуйте сделать так:

public function allNewOrdersToday() {
    $allNewOrders = ( new OrderList() )
       ->whereDate( 'created_at', '>=', date('Y-m-d 17:00:00',strtotime("-1 days")) 
    return $allNewOrders;
 }
...