by Danilo Andrade
A easy-to-use date filter with range option.
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::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::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::make('created_at') ->useColumn('updated_at')
You can set From/Until label globally using configureUsing()
method in a service provider:
use Webbingbrasil\FilamentDateFilter; DateFilter::configureUsing(fn ($filter) => $filter->fromLabel(__('From'))->untilLabel(__('Until')));