Laravel Packages

Laravel Date Filtering Package for Eloquent

Published
Laravel Date Filtering Package for Eloquent image

This Laravel Date Filtering package aims to simplify date-based filtering for your Laravel Eloquent models. It provides various methods to filter records based on time and date intervals:

use OmarElnaghy\LaraDateFilters\Enums\DateRange;
 
$startDate = Carbon::parse('2023-9-03');
 
// Generic method to filter by various units
Post::filterByDateRange(
duration: 2,
dateUnit: 'day',
date: $startDate,
direction: 'before', // or `'after'`
range: DateRange::INCLUSIVE,
)->get();
 
// Helpers for each unit type: second, minute, hour, etc.
Post::filterByDateMinutesRange(
duration: 2,
date: $startDate,
direction: 'after',
range: DateRange::EXCLUSIVE,
)->get();
 
/*
Post::filterByDateSecondsRange();
Post::filterByDateHoursRange();
Post::filterByDateDaysRange();
Post::filterByDateWeeksRange();
Post::filterByDateMonthsRange();
*/

The setup for this package is defining a custom Eloquent builder that extends the built-in builder with this added functionality. It gives you access to the above filter methods as well as dynamic ranges on the fly using the following conventions:

Post::filterByDate5DayRange($startDate, $direction, $range)->get();
Post::filterByDate6WeekRange($startDate, $direction, $range)->get();
Post::filterByDate7MonthRange($startDate, $direction, $range)->get();

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Look What You Helped Me Build image

Look What You Helped Me Build

Read article
BashBox: A Sandboxed Bash Interpreter for AI Agents in PHP image

BashBox: A Sandboxed Bash Interpreter for AI Agents in PHP

Read article
Running Laravel's Scheduler on Multiple Servers image

Running Laravel's Scheduler on Multiple Servers

Read article
Laravel Fake Assertions Now Accept Property Arrays image

Laravel Fake Assertions Now Accept Property Arrays

Read article
Route::query() and Model defaults() in Laravel 13.35 image

Route::query() and Model defaults() in Laravel 13.35

Read article
Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat image

Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat

Read article