首页 > 解决方案 > laravel 获取 5 小时后的数据

问题描述

您好,这是我的 laravel 项目,我想在其中获取 5 小时之前的数据。我该怎么做,请给我一个解决方案。
谢谢

    $date = new \DateTime();
    $date->modify('6 hours');
    $formatted_date = $date->format('Y-m-d H:i:s');


    if (Auth::user()->role == 'seller'){
        $orders = Order::where('seller_id', Auth::user()->id)->where('status', '0')->get();
    }
    if (Auth::user()->role == 'curier'){
        $orders = Order::where('curier_id', Auth::user()->id)->where('status', '0')->get();
    }
    if (Auth::user()->role == 'superadmin' || Auth::user()->role == 'manager'){
        $orders = Order::where('status', '0')->get();
    }
    return view($this->view_page_url.'ready_ship', compact('orders'));`

标签: phpdatabaselaravel

解决方案


早于 5 小时的数据,因此它created_at是不到 5 小时前的数据。

你可以Carbon::now()->subHours(5)用来获取时间,

然后获取数据:

$datetime = \Carbon\Carbon::now()->subHours(5)->format("Y-m-d H:i:s");

if (Auth::user()->role == 'seller'){
    $orders = Order::where('seller_id', Auth::user()->id)->where('status', '0');
}
if (Auth::user()->role == 'curier'){
    $orders = Order::where('curier_id', Auth::user()->id)->where('status', '0');
}
if (Auth::user()->role == 'superadmin' || Auth::user()->role == 'manager'){
   $orders = Order::where('status', '0');
}

$orders = $orders->where('created_at', '<=', $datetime)->get();

推荐阅读