ปฏิทิน Thai Date Picker สำหรับ Filament 3 Form Component วัน/เดือน/ปีที่แสดงใน Form เป็นภาษาไทย แต่เก็บเข้า Model เป็นปี ค.ศ.ตามปกติ
Run คำสั่ง composer require เพื่อติดตั้ง Package
composer require phattarachai/filament-thai-date-picker
ทำการ publish ไฟล์ javascript ถ้าหากไม่ได้ run คำสั่งนี้อยู่แล้วในไฟล์ composer.json "post-autoload-dump"
php artisan filament:upgrade
ใช้เหมือน DatePicker ปกติ แต่เรียกใช้ class ThaiDatePicker แทน
use Phattarachai\FilamentThaiDatePicker\ThaiDatePicker;
ThaiDatePicker::make('order_date')
->label('วันที่สั่งซื้อ')
->suffixIcon('heroicon-o-calendar')
แบบ มีเวลา
use Phattarachai\FilamentThaiDatePicker\ThaiDateTimePicker;
ThaiDateTimePicker::make('transfer_at')
->label('เวลาที่โอน')
->suffixIcon('heroicon-o-calendar')
โดยปี พ.ศ.จะใช้สำหรับการแสดงผลเท่านั้นเวลาใช้งาน state เพื่อบันทึกลงฐานข้อมูลจะได้เป็นปี ค.ศ. ตามปกติ
$data = $this->form->getState();
// $data['order_date'] = '2024-05-17'
นอกจาก Datepicker แล้วใน package นี้เพิ่ม method thaidate()
และ thaidatetime()
สำหรับช่วยการแสดงผล Infolist วันที่ปี พ.ศ. ภาษาไทย
use Filament\Infolists\Components\TextEntry;
TextEntry::make('order_date')
->label('วันที่สั่งซื้อ')
->thaidate(),
// 18 พ.ค. 67
use Filament\Infolists\Components\TextEntry;
TextEntry::make('created_at')
->label('วันที่สร้าง')
->thaidatetime(),
// 18 พ.ค. 67 12:05
ถ้า field วันที่ เป็นค่า null ได้แล้วแล้วต้องการให้แสดงค่า default สามารถส่ง parameter default ไปใน function ได้
use Filament\Infolists\Components\TextEntry;
TextEntry::make('confirm_date')
->label('วันที่ยืนยัน')
->thaidate(default: '-'),
// -
เช่นเดียวกับ Infolist package นี้เพิ่ม macro method thaidate()
สำหรับการ format
การแสดงผลคอลัมน์วันที่เพื่อให้แสดงผลเป็นปี
พ.ศ. ภาษาไทย ได้เลย
use Filament\Tables;
Tables\Columns\TextColumn::make('order_date')
->label('วันที่')
->thaidate()
// สามารถระบุ date format ได้เหมือน function date_format ของ PHP
// default format เป็น d M y
// เช่น 18 พ.ค. 67
ถ้าเป็น วันที่และเวลาใช้ method thaidatetime()
use Filament\Tables;
Tables\Columns\TextColumn::make('created_at')
->label('วันที่สร้าง')
->thaidatetime()
// default format เป็น d M y H:i
// เช่น 18 พ.ค. 67 12:00
🙋♂️ สวัสดีครับ ผมอ๊อฟนะครับ เป็น Full Stack Web Developer
รับ Implement งาน Project ทางด้าน Web Application สำหรับองค์กร ธุรกิจ SME ส่วนงานราชการและบริษัทขนาดใหญ่ครับ
https://phattarachai.dev
line: phat-chai
The MIT License (MIT).