如何使用 Laravel 和 Eloquent 在两个日期之间进行查询? [英] How to query between two dates using Laravel and Eloquent?

查看:44
本文介绍了如何使用 Laravel 和 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 子句:whereInwhereNotInwhereNullwhereNotNullwhereDatewhereMonthwhereDaywhereYearwhereTimewhereColumnwhereExists, whereRaw.


Other useful where clauses: whereIn, whereNotIn, whereNull, whereNotNull, whereDate, whereMonth, whereDay, whereYear, whereTime, whereColumn , whereExists, whereRaw.

有关 Where 子句的 Laravel 文档.

这篇关于如何使用 Laravel 和 Eloquent 在两个日期之间进行查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆