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

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Email Sending and Testing for Laravel in One Account image

Email Sending and Testing for Laravel in One Account

Read article
Decide with Jev: Tie Every AI Check to the Exact Draft image

Decide with Jev: Tie Every AI Check to the Exact Draft

Read article
PIE 1.5 Changes PHP Extension Installs in CI image

PIE 1.5 Changes PHP Extension Installs in CI

Read article
Delete Expired Sessions in Laravel With a Scheduled Command image

Delete Expired Sessions in Laravel With a Scheduled Command

Read article
Pollora: Run WordPress Inside a Laravel Application image

Pollora: Run WordPress Inside a Laravel Application

Read article
Scheduled Session Garbage Collection in Laravel 13.39 image

Scheduled Session Garbage Collection in Laravel 13.39

Read article