Laravel 在一小时内获得所有结果

Laravel 在一小时内获得所有结果,laravel,laravel-5,laravel-5.3,php-carbon,Laravel,Laravel 5,Laravel 5.3,Php Carbon,我正努力在一小时内得到所有结果。不是过去的一小时,而是一小时之内 例如,如果当前是12:30,我希望得到12:00之后的所有结果,而不是11:30。或者如果是6:45,我想得到6:00以后的所有结果,而不是5:45 我如何使用碳和Laravel做到这一点 以下是到目前为止我得到的信息: $user = User::where('created_at', WHAT DO I PUT HERE) ->get(); 您可以使用now()和subHour()方法: $user = Use

我正努力在一小时内得到所有结果。不是过去的一小时,而是一小时之内

例如,如果当前是12:30,我希望得到12:00之后的所有结果,而不是11:30。或者如果是6:45,我想得到6:00以后的所有结果,而不是5:45

我如何使用碳和Laravel做到这一点

以下是到目前为止我得到的信息:

$user = User::where('created_at', WHAT DO I PUT HERE)
    ->get();
您可以使用
now()
subHour()
方法:

$user = User::where('created_at', '>', Carbon::now()->subHour())->get();

您可以使用以下简单的PHP函数实现这一点

$user = User::where('created_at', '>', date('Y-m-d H:00:00'))->get();

我知道,你在寻找碳的解决方案。出于可读性和可移植性的原因,下面介绍本机OOP PHP日期时间解决方案

$user = User::where('created_at', '>=', (new DateTime)->format('Y-m-d H:00:00'))
->get();

注意>=操作符

要做到这一点,你必须得到当前的小时,没有分秒。然后运行查询以在该时间之后返回结果

$currentHourInt = Carbon::now('Asia/Dhaka')->hour; 
$currentHour = Carbon::createFromTime($currentHourInt,0,0);

$user = User::where('created_at','>',$currentTime)
            ->get();
在上面的示例中,
$currentHourInt
将返回当前时间的整数值。例如,如果它是
13:54:12
,它将返回
13
。我使用
Aisa/Dhaka
作为我的时区,如果您的数据保存在
UTC
时间中,您可以使用您的时区,也可以将其留空。
$currentHour
使用当前小时、0分钟和0秒创建当前时间。例如,如果它是
13:54:12
,它将返回
13:00:00

有关碳的更多信息:

希望它能对你有所帮助,你可以使用这个方法

User::whereBetween('created_at', [date('Y-m-d H:00:00'), date(Y-m-d H:i:s)])->get();