A easy-to-use date filter with range option for Laravel Filament.
Install the package via composer (requires filament >= 2.15)
composer require webbingbrasil/filament-datefilter
Date filters allow you to quickly create a filter that allows the user to select a date.
use Webbingbrasil\FilamentDateFilter\DateFilter;
DateFilter::make('created_at')
->label(__('Created At'))
->minDate(Carbon::today()->subMonth(1))
->maxDate(Carbon::today()->addMonth(1))
->timeZone('America/New_York')
Another common use case is to filter by a date range. You can do this with range()
method:
use Webbingbrasil\FilamentDateFilter\DateFilter;
DateFilter::make('created_at')
->label(__('Created At'))
->minDate(Carbon::today()->subMonth(1))
->maxDate(Carbon::today()->addMonth(1))
->timeZone('America/New_York')
->range()
->fromLabel(__('From'))
->untilLabel(__('Until'))
If you need to use a different column name than the one you pass to the make()
method, you can use the useColumn()
method:
use Webbingbrasil\FilamentDateFilter\DateFilter;
DateFilter::make('created_at')
->useColumn('updated_at')
You can set From/Until label globally using configureUsing()
method in a service provider:
use Webbingbrasil\FilamentDateFilter\DateFilter;
DateFilter::configureUsing(fn ($filter) => $filter->fromLabel(__('From'))->untilLabel(__('Until')));