zenepay / filament-buddhist-date-picker
Laravel Filament DatePicker with Bhuddist Era plugin
Installs: 855
Dependents: 0
Suggesters: 0
Security: 0
Stars: 16
Watchers: 0
Forks: 3
Open Issues: 0
Language:Blade
Requires
- php: ^8.1|^8.2|^8.3
- blade-ui-kit/blade-heroicons: ^2.3
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- filament/tables: ^3.2
- orchestra/testbench: ^9.1
- pestphp/pest-plugin-livewire: ^2.1
- pestphp/pest-plugin-watch: ^2.1
- phpunit/phpunit: ^10.5
README
Filament Buddhist DatePicker/DateTimePicker Extension
This package adds buddhistEra support to filament v3 DatePicker
and DateTimePicker
.
https://filamentphp.com/docs/3.x/forms/fields/date-time-picker
Installation
You can install the package via composer:
composer require zenepay/filament-buddhist-date-picker
Usage
1. For all languages in Buddhist year
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('start_date')->buddhist(); DateTimePicker::make('start_date')->buddhist();
2. For all Thai language in Christian year
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('start_at')->buddhist(false); DatetimePicker::make('start_at')->buddhist(false);
2. For some languages in Buddhist year
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('birth_date')->buddhist(onlyLocales:['th','en']); DateTimePicker::make('birth_date')->buddhist(onlyLocales:['th','en']);
3. For display weekdays Min or set weekdaysMin:false for weekdays Short format
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('start_at')->buddhist(lyLocales:on['th','en'],weekdaysMin:true); DatetimePicker::make('start_at')->buddhist(onlyLocales:['th','en'],weekdaysMin:true);
You can also use this way
use Zenepay\FilamentBuddhistDatePicker\BuddhistDatePicker; BuddhistDatePicker::make('start_date'); BuddhistDatePicker::make('birth_date')->onlyLocales(['th','en'])->weekdaysMin(false);
Or make alias to DatePicker and replace use Filament\Forms\Components\DatePicker to use Zenepay\FilamentBuddhistDatePicker\BuddhistDatePicker as DatePicker
//use Filament\Forms\Components\DatePicker --> use Zenepay\FilamentBuddhistDatePicker\BuddhistDatePicker as DatePicker; DatePicker::make('start_date'); DatePicker::make('birth_date')->onlyLocales(['th','en'])->weekdaysMin(false);
4. For who might love AM/PM hour mode
For Datetime format with AM PM 12H, which was available at filamentphp/filament#6441, now it can be combined with Buddhist Era as optional.
use Filament\Forms\Components\DateTimePicker; DatetimePicker::make('start_at')->hourMode(12)->displayFormat('d/m/y h:i A')->seconds(false); // 15/02/24 11:10 PM
5. Use Buddhist Era in TextColumn in table
This can be done by replace $table->date() with $table->buddhistDate() for dateTime replace with $table->buddhistDateTime()
TextColumn::make('start_at')->buddhistDate(format:'m/d/Y',onlyLocales:['th']); // 15/02/2567
Test
./vendor/bin/pest ./tests
Demo & Show Case
- Water Billing
- user login: demo@example.com
- password: demo1234
Credits
License
The MIT License (MIT)
Filament DatePicker และ DateTimePicker Extension สำหรับ calendar ภาษาไทย และ ปี พุทธศักราช
ใช้สำหรับ Larvavel 10 และ 11 Filament v3 DatePicker
DateTimePicker
.
การติดตั้ง
รัน composer ที่ root ไดเร็กทอรีของ Laravel
composer require zenepay/filament-buddhist-date-picker
การใช้งาน
1. กรณีต้องการให้ทุกภาษา เป็น พ.ศ.
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('start_date')->buddhist(); DateTimePicker::make('start_date')->buddhist();
2. กรณีให้ทุกภาษา เป็น ค.ศ ซึ่งจะรองรับ ภาษาไทย ด้วย
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('birth_date')->buddhist(onlyLocales:['th','en']); DateTimePicker::make('birth_date')->buddhist(onlyLocales:['th','en']);
2. กรณีให้บางภาษา เป็น เป็น พ.ศ นอกนั้นให้เป็น ค.ศ
\Filament\Forms\Components\DatePicker::make('birth_date')->buddhist(onlyLocales:['th','en']); \Filament\Forms\Components\DateTimePicker::make('birth_date')->buddhist(onlyLocales:['th','en']);
3. กรณีใช้ชื่อย่อแทนวัน เช่น อ. จ อ พ พฤ ศ ส
ให้เซ็ต weekdaysMin เป็น true หรือให้เป็นแบบสั้น อาทิตย์ จันทร์ อังคาร ให้เซ็ต เป็น false
use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\DateTimePicker; DatePicker::make('start_at')->buddhist(onlyLocales:['th','en'],weekdaysMin:true); DatetimePicker::make('start_at')->buddhist(onlyLocales:['th','en'],weekdaysMin:true);
หรือใช้แบบ เป็น component ใหม่แทนเลย ก็ใช้แบบนี้ได้
use Zenepay\FilamentBuddhistDatePicker\BuddhistDatePicker; BuddhistDatePicker::make('start_date'); BuddhistDatePicker::make('birth_date')->onlyLocales(['th','en'])->weekdaysMin(false);
หรือเปลี่ยน การใช้ use Filament\Forms\Components\DatePicker เป็น ใช้ use Zenepay\FilamentBuddhistDatePicker\BuddhistDatePicker as DatePicker แทน เพื่อไม่ต้องไล่แก้ ใส่ buddhist() แต่ละ DatePicker component ในหน้านั้น
//use Filament\Forms\Components\DatePicker --> use Zenepay\FilamentBuddhistDatePicker\BuddhistDatePicker as DatePicker; DatePicker::make('start_date'); DatePicker::make('birth_date')->onlyLocales(['th','en'])->weekdaysMin(false);
4. For who might love AM/PM hour mode
For Datetime format with AM PM 12H, which was available at filamentphp/filament#6441, now it can be combined with Buddhist Era as optional.
use Filament\Forms\Components\DateTimePicker; DatetimePicker::make('start_at')->hourMode(12)->displayFormat('d/m/y h:i A')->seconds(false); // 15/02/24 11:10 PM
5. Use Buddhist Era in TextColumn in table
This can be done by replace $table->date() with $table->buddhistDate() for dateTime replace with $table->buddhistDateTime()
TextColumn::make('start_at')->buddhistDate(format:'m/d/Y',onlyLocales:['th']); // 15/02/2567
Test
./vendor/bin/pest ./tests
Demo & Show Case
- Water Billing
- user login: demo@example.com
- password: demo1234
Credits
License
The MIT License (MIT)