laravel-5.4:获取从昨天的5点到现在为止创建的记录

时间:2018-09-20 10:55:22

标签: laravel php-carbon

我需要获取从yesterday at 5.00PMnow创建的记录,因此,如果我尝试以下操作:

  • 如果我在8am打开系统,请启动yesterday 5pm直到now(上午8点)
  • 如果我在1pm处打开系统,请从yesterday 5pm开始直到now(下午1点)

...等等

这是我的职责。

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

        return $allNewOrders;
    }

2 个答案:

答案 0 :(得分:1)

使用Carbon,您应该能够使用Yesturday 5:00pmyesturday()碳方法查询日期在setTime()之后的地方:

use Carbon\Carbon;

... 

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

在此示例中,我将(new OrderList())更改为OrderList::...,因为您正在使用eloquent模型,并且能够调用查询构建器方法而无需新的类实例。

答案 1 :(得分:0)

尝试这样做:

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