我试图在一小时内得到所有结果。不是过去的一小时,而是在一小时内。
例如,如果它目前是12:30,我希望从12:00开始,而不是11:30获得所有结果。或者,如果它是6:45,我希望从6:00开始,而不是5:45获得所有结果。
如何使用Carbon和Laravel进行此操作?
这是我到目前为止所得到的:
$user = User::where('created_at', WHAT DO I PUT HERE)
->get();
答案 0 :(得分:1)
我知道,您正在寻找碳溶液。出于可读性和可移植性的原因,低于本机OOP PHP DateTime解决方案。
$user = User::where('created_at', '>=', (new DateTime)->format('Y-m-d H:00:00'))
->get();
注意> =运算符!
答案 1 :(得分:0)
您可以使用Carbon's now()
和subHour()
方法:
$user = User::where('created_at', '>', Carbon::now()->subHour())->get();
答案 2 :(得分:0)
您可以使用简单的PHP date()
函数
$user = User::where('created_at', '>', date('Y-m-d H:00:00'))->get();
答案 3 :(得分:0)
要做到这一点,你必须得到当前时间,没有分钟和秒。然后运行查询以在该时间之后返回结果。
$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
。
有关Carbon的更多信息:http://carbon.nesbot.com/docs/
希望它会有所帮助
答案 4 :(得分:0)
您可以使用whereBetween方法。
User::whereBetween('created_at', [date('Y-m-d H:00:00'), date(Y-m-d H:i:s)])->get();