malzariey/filament-daterangepicker-filter
This package uses daterangepciker library to filter date by a range or predefined date ranges (Today , Yesterday ...etc)
5.0.7
2.7M downloads/mo
#1845 most downloaded on Packagist
malzariey/filament-daterangepicker-filter
What this package is like to depend on
Last release 5 days ago
18 Aug 2026
Release timing varies
gaps range from 8 days to 5 months
Rarely documented
notes for 9 of 82 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
82 releases · first in 2023
16 releases in the last 12 months
see the full history below
Release timeline
81 releases · Mar 2023 to Aug 2026Releases
latest 60 of 82-
5.0.718 Aug 2026Release notes
Open source →Fixed — date filters silently dropped rows when a display timezone was set
getSystemTimezone()returnedFilamentTimezone::get(). That is Filament's display timezone — core reads it for date-time columns, entries and pickers, and it falls back toconfig('app.timezone')when unset. The timezone a column is stored in isconfig('app.timezone'), which is what Eloquent writes with.While nobody calls
FilamentTimezone::set()the two resolve to the same value and nothing is wrong. The moment somebody sets it — the documented way to show local times over UTC storage — the conversion inapply()became a no-op: input and system resolved to the same zone, so the parsed dates kept their local offset, and Laravel binds them withformat(), which does not convert. Local wall-clock then reached the query against UTC data.Measured on a UTC column with the display set to
Asia/Riyadh, filtering a single day:bindings 2026-08-18 00:00:00 / 2026-08-18 23:59:59 (+03 wall-clock) row stored 2026-08-17 22:00:00 (01:00 that morning in Riyadh) returned excludedEvery row falling in the first hours of a local day was filed under the day before — silently, which is the worst way for a date filter to be wrong.
The change
getTimezone()now defaults toFilamentTimezone::get()— the zone the dates on screen are written in.getSystemTimezone()now returnsconfig('app.timezone')— the zone the column is stored in.
This matches what Filament's own
DateTimePickerdoes.Upgrading
No action needed, and nothing changes for you unless you call
FilamentTimezone::set(). When it is unset it returnsconfig('app.timezone'), so both getters resolve exactly as before.FilamentTimezone5.0.6 5.0.7 unset (default) input=UTC, storage=UTC identical Asia/Riyadh, UTC columninput=Riyadh, storage=Riyadh — wrong input=Riyadh, storage=UTC — correct New
systemTimezone()setter, for a column genuinely stored outside the application timezone:DateRangeFilter::make('created_at')->systemTimezone('Asia/Riyadh');
Covered by
tests/TimezoneSeparationTest.php— five tests, four of which fail without the fix. -
5.0.611 Jun 2026Release notes
Open source →What's Changed
- Bump shell-quote from 1.8.3 to 1.8.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #242
- fix Romanian translations by @andreiio in #241
Full Changelog: 5.0.5...5.0.6
-
5.0.508 Jun 2026Nothing published for this version
-
5.0.408 Jun 2026Release notes
Open source →Month picker manual input stability
This patch release completes the editable month picker work and fixes the input-mask crash found while testing the demo environment.
Fixed
- Month/year picker manual input no longer uses IMask's day-date mask for month-only or year-only formats.
- Typing partial short-year values such as
01/22inmonthPicker()->singleCalendar()->allowInput()->format('m/Y')no longer causes a maximum call stack error. - Invalid partial month input stays non-destructive: the previous valid state remains selected until the user enters a complete valid value or clears the field.
- The month picker header avoids stale bundled-JS Alpine references while keeping direct year editing and year navigation.
Demo
- Added a Workbench demo field for the exact manual-input configuration:
monthPicker()->singleCalendar()->allowInput()->format('m/Y')
Verification
npm test: 116 passednpm run build: passed, rebuilt dist assetscomposer test: 148 passedphp -l workbench/app/Filament/Pages/DemoPage.php: passed
-
5.0.308 Jun 2026Release notes
Open source →Fix month picker year input rendering.
- Replace the month picker header year select with a compact numeric year input.
- Keep the active year visible and stable in the popup header.
- Clamp out-of-range typed years back to configured min/max constraints.
- Rebuild dist assets.
Verification:
- npm test: 115 passed
- npm run build: passed
- composer test: 148 passed
-
5.0.208 Jun 2026Release notes
Open source →Summary
Patch release for month picker editing and keyboard handling fixes.
Fixed
- Fixed month picker manual input Enter handling so typed month values are parsed and applied before keyboard confirmation logic.
- Fixed month/year picker Enter behavior so non-day pickers do not call day-selection code.
- Fixed invalid partial manual input overwriting the previous valid month picker state.
Added
- Added a direct year select control in the month picker popup header.
- Added month picker year option constraints based on existing
minYear,maxYear,minDate, andmaxDateconfiguration.
Compatibility
- No PHP public API changes.
- Existing day picker Enter behavior remains unchanged.
showDropdowns()day picker behavior remains unchanged.- Built
distassets are included.
Verification
npm test: 4 test files passed, 114 tests passed.npm run build: completed successfully and regenerateddistassets.composer test: 148 tests passed, 213 assertions.
Pull Request
-
5.0.102 Apr 2026Release notes
Open source →What's Changed
- Bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 by @dependabot[bot] in #232
- Fix timed preset matching in DateRangePicker (active range + range labels) by @bendbot
Full Changelog: 5.0.0...5.0.1
-
5.0.002 Apr 2026Release notes
Open source →🚀 v5.0 — Complete Rewrite: Alpine.js + Day.js
A ground-up rewrite replacing jQuery & Moment.js with a native Alpine.js component powered by Day.js.
This is a major release with breaking changes. The entire frontend has been rebuilt from scratch for better performance, smaller bundle size, and seamless Filament v4/v5 integration.
✨ What's New
Architecture
- Alpine.js Native — No more jQuery dependency. The picker is a first-class Alpine.js component with full Livewire reactivity.
- Day.js — Replaced Moment.js (330KB) with Day.js (7KB) for date manipulation. ~97% smaller.
- Floating UI — Replaced manual positioning with
@floating-ui/domfor robust dropdown placement that handles scroll, resize, and viewport edges automatically. - IMask.js — Integrated input masking for precise manual date entry with auto-padding and block navigation.
New Features
- 🗓️ Month Picker —
->monthPicker()for selecting month ranges - 📅 Year Picker —
->yearPicker()for selecting year ranges - ⌨️ Manual Input —
->allowInput()enables typed date entry with format-aware masking - 🎯 Teleport —
->teleport()(enabled by default) moves the dropdown to<body>, solving z-index issues in modals and slide-overs - ♿ Keyboard Navigation — Full arrow key, Home/End, PageUp/PageDown, Enter/Escape support
- 🔗 Dual State Fields —
->dualState('start_field', 'end_field')syncs to two separate Livewire properties - 📝 PHP Format Tokens —
->format('Y-m-d')uses PHP Carbon tokens. The package auto-converts to Day.js tokens for the frontend. - 🌍 32 Bundled Locales — All locales are statically imported and work without async loading:
ar,cs,da,de,el,es,fa,fr,he,hu,id,it,ko,ku,lt,lv,nb,nl,pl,pt,pt-br,ro,ru,sk,sl,tr,uk,uz,vi,zh-cn,zh-tw
Performance & Quality
- ⚡ Synchronous Init — No more
async init(). Locales are bundled, eliminating runtime import latency. - 🧹 Static Format Map — PHP→Day.js format conversion uses a static class constant instead of rebuilding on every call.
- 🎯 Strict Comparisons — All
==/!=replaced with===/!==across the codebase. - 🧪 148 Tests — Comprehensive Pest test suite covering fields, filters, formats, Livewire integration, and default presets.
💥 Breaking Changes
Dependencies Removed
Removed Replaced By jqueryAlpine.js (bundled with Filament) moment/moment-timezonedayjs^1.11daterangepicker(jQuery plugin)Native Alpine.js component API Changes
Format Method
- ->displayFormat('DD/MM/YYYY') // Day.js tokens (still works, deprecated) + ->format('d/m/Y') // PHP Carbon tokens (recommended)
Deprecated Methods
These methods still work but will be removed in a future version:
Deprecated Use Instead ->displayFormat('DD/MM/YYYY')->format('d/m/Y')->setTimePickerOption(true)->timePicker()->setTimePickerIncrementOption(15)->timePickerIncrement(15)->setTimePicker24HourOption(true)->timePicker24()->setTimePickerSecondOption(true)->timePickerSecond()->setAutoApplyOption(true)->autoApply()Filament Version
- Requires Filament v4.0+ or Filament v5.0+
- Uses
Filament\Support\Facades\FilamentTimezonefor system timezone
📋 Migration Guide
1. Update Dependencies
composer require malzariey/filament-daterangepicker-filter:^5.0
2. Remove jQuery/Moment Assets
If you were manually including jQuery or Moment.js for this package, remove them — they're no longer needed.
3. Update Format Calls
// Before (v4) DateRangePicker::make('range')->displayFormat('DD/MM/YYYY'); // After (v5) — use PHP Carbon tokens DateRangePicker::make('range')->format('d/m/Y');
4. New Features (Optional)
// Month picker DateRangePicker::make('month_range')->monthPicker(); // Year picker DateRangePicker::make('year_range')->yearPicker(); // Manual input with masking DateRangePicker::make('range')->allowInput(); // Dual state (sync to two separate properties) DateRangePicker::make('range')->dualState('start_date', 'end_date');
📦 Requirements
Requirement Version PHP ^8.1 Laravel ^10.0 | ^11.0 | ^12.0 | ^13.0 Filament ^4.0 | ^5.0 Runtime JS Dependencies (bundled)
Package Version Purpose dayjs^1.11 Date manipulation @floating-ui/dom^1.6 Dropdown positioning imask^7.6 Input masking
🙏 Contributors
Thanks to all contributors who helped shape this release:
- @ahmed-rashad-alnaggar — FilamentTimezone integration
- @Youssef-Amjad — Laravel 13 support, version constraint fixes
- @andreiio — Romanian translations
- @tiagof — Portuguese translations
- @juliangums — 12/24-hour format fix
Full Changelog:
4.0.9...5.0.0 -
4.0.922 Mar 2026Release notes
Open source →What's Changed
- refactor: Filament timezone as default timezone by @ahmed-rashad-alnaggar in #227
- support laravel 13 by @Youssef-Amjad in #231
New Contributors
- @ahmed-rashad-alnaggar made their first contribution in #227
Full Changelog: 4.0.8...4.0.9
-
4.0.824 Jan 2026Nothing published for this version
-
4.0.719 Jan 2026Nothing published for this version
-
4.0.614 Aug 2025Nothing published for this version
-
4.0.219 Jan 2026Nothing published for this version
-
4.0.119 Jan 2026Nothing published for this version
-
3.4.312 Jun 2025Nothing published for this version
-
3.4.229 May 2025Nothing published for this version
-
3.4.113 May 2025Nothing published for this version
-
3.4.010 May 2025Nothing published for this version
-
3.3.104 May 2025Nothing published for this version
-
3.3.006 Apr 2025Nothing published for this version
-
3.2.310 Mar 2025Nothing published for this version
-
3.2.210 Mar 2025Nothing published for this version
-
3.2.125 Feb 2025Nothing published for this version
-
3.2.003 Feb 2025Nothing published for this version
-
3.1.202 Jan 2025Nothing published for this version
-
3.1.130 Oct 2024Nothing published for this version
-
3.1.018 Oct 2024Nothing published for this version
-
3.0.501 Oct 2024Nothing published for this version
-
3.0.423 Aug 2024Nothing published for this version
-
3.0.314 Aug 2024Nothing published for this version
-
3.0.210 Aug 2024Nothing published for this version
-
3.0.108 Aug 2024Nothing published for this version
-
3.0.002 Aug 2024Nothing published for this version
-
2.8.001 Jul 2024Nothing published for this version
-
2.7.307 Jun 2024Nothing published for this version
-
2.7.204 Jun 2024Nothing published for this version
-
2.7.104 Jun 2024Nothing published for this version
-
2.7.004 Jun 2024Nothing published for this version
-
2.6.217 May 2024Nothing published for this version
-
2.6.127 Apr 2024Nothing published for this version
-
2.5.718 Apr 2024Nothing published for this version
-
2.5.616 Apr 2024Nothing published for this version
-
2.5.516 Apr 2024Nothing published for this version
-
2.5.416 Apr 2024Nothing published for this version
-
2.5.313 Apr 2024Nothing published for this version
-
2.5.211 Apr 2024Nothing published for this version
-
2.5.109 Apr 2024Nothing published for this version
-
2.4.116 Mar 2024Nothing published for this version
-
2.4.013 Mar 2024Nothing published for this version
-
2.3.125 Nov 2023Nothing published for this version
-
2.3.024 Oct 2023Nothing published for this version
-
2.2.310 Oct 2023Nothing published for this version
-
2.2.215 Sep 2023Nothing published for this version
-
2.2.115 Sep 2023Nothing published for this version
-
2.1.313 Sep 2023Nothing published for this version
-
2.1.229 Aug 2023Nothing published for this version
-
2.1.125 Aug 2023Nothing published for this version
-
1.3.224 Jun 2023Nothing published for this version
-
1.3.1no dateNothing published for this version
-
1.2.125 May 2023Nothing published for this version