如何使用 Laravel 和 Eloquent 在两个日期之间进行查询? [英] How to query between two dates using Laravel and Eloquent?
问题描述
我正在尝试创建一个报告页面,显示从特定日期到特定日期的报告.这是我当前的代码:
I'm trying to create a report page that shows reports from a specific date to a specific date. Here's my current code:
$now = date('Y-m-d');
$reservations = Reservation::where('reservation_from', $now)->get();
这在普通 SQL 中的作用是 select * from table where reserved_from = $now
.
What this does in plain SQL is select * from table where reservation_from = $now
.
我在这里有这个查询,但我不知道如何将其转换为 eloquent 查询.
I have this query here but I don't know how to convert it to eloquent query.
SELECT * FROM table WHERE reservation_from BETWEEN '$from' AND '$to
如何将上面的代码转换为 eloquent 查询?提前致谢.
How can I convert the code above to eloquent query? Thank you in advance.
推荐答案
whereBetween
方法验证列的值介于两个值.
The whereBetween
method verifies that a column's value is between
two values.
$from = date('2018-01-01');
$to = date('2018-05-02');
Reservation::whereBetween('reservation_from', [$from, $to])->get();
在某些情况下,您需要动态添加日期范围.根据 @Anovative 的评论,您可以这样做:
In some cases you need to add date range dynamically. Based on @Anovative's comment you can do this:
Reservation::all()->filter(function($item) {
if (Carbon::now()->between($item->from, $item->to)) {
return $item;
}
});
如果您想添加更多条件,则可以使用orWhereBetween
.如果您想排除日期间隔,则可以使用 whereNotBetween
.
If you would like to add more condition then you can use orWhereBetween
. If you would like to exclude a date interval then you can use whereNotBetween
.
Reservation::whereBetween('reservation_from', [$from1, $to1])
->orWhereBetween('reservation_to', [$from2, $to2])
->whereNotBetween('reservation_to', [$from3, $to3])
->get();
其他有用的 where 子句:whereIn
、whereNotIn
、whereNull
、whereNotNull
、whereDate
、whereMonth
、whereDay
、whereYear
、whereTime
、whereColumn
、whereExists
, whereRaw
.
Other useful where clauses: whereIn
, whereNotIn
, whereNull
, whereNotNull
, whereDate
, whereMonth
, whereDay
, whereYear
, whereTime
, whereColumn
, whereExists
, whereRaw
.
这篇关于如何使用 Laravel 和 Eloquent 在两个日期之间进行查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!