如何使用 Eloquent 在兩個日期之間進行查詢?

laradocs發表於2021-10-09

使用 whereBetween 驗證列的值是否在兩個值之間:

$from = date ( '2021-01-01' );
$to = date ( '2021-10-09' );

Model::whereBetween ( 'created_at', [ $from, $to ] )->get();

在某些情況下,需要動態新增日期範圍。

Model::all()->filter ( function ( $item ) {
    if ( now()->between ( $item->from, $item->to ) ) {
        return $item;
    }
} );

如果想新增更多條件,可以使用 orWhereBetween 方法。如果想排除日期,可以使用 whereNotBetween 方法。

Model::::whereBetween ( 'created_at', [ $form1, $to1 ] )
    ->orWhereBetween ( 'publish_at', [ $form2, $to2 ] )
    ->orWhereNotBetween ( 'release_at', [ $form3, $to3 ] )
    ->get();

其他有用的 where 子句:whereInwhereNotInwhereNullwhereNotNullwhereDatewhereMonthwhereDaywhereYearwhereTimewhereColumnwhereExistswhereRaw

本作品採用《CC 協議》,轉載必須註明作者和本文連結
站在巨人的肩上

相關文章