phattarachai / filament-thai-date-picker
FilamentPHP Thai Date Picker Form Component
Package info
github.com/phattarachai/filament-thai-date-picker
Language:JavaScript
pkg:composer/phattarachai/filament-thai-date-picker
Requires
- php: ^8.2
- filament/forms: ^5.0
- phattarachai/thaidate: ^12.1
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
README
ปฏิทิน Thai Date Picker สำหรับ Filament Form Component วัน/เดือน/ปีที่แสดงใน Form เป็นภาษาไทย (พ.ศ.) แต่เก็บเข้า Model เป็นปี ค.ศ.ตามปกติ
Version ที่รองรับ
| Filament | ThaiDatePicker | สถานะ |
|---|---|---|
| 5.x | 3.x | เวอร์ชันปัจจุบัน |
| 4.x | 2.x | ใช้งาน |
| 3.x | 1.x | หยุด support |
วิธีติดตั้ง
Run คำสั่ง composer require เพื่อติดตั้ง Package
composer require phattarachai/filament-thai-date-picker
ทำการ publish ไฟล์ javascript (ถ้าหากไม่ได้ run คำสั่งนี้อยู่แล้วในไฟล์ composer.json post-autoload-dump)
php artisan filament:upgrade
วิธีใช้งาน ThaiDatePicker
ใช้เหมือน 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'
การแสดงวันที่ภาษาไทยใน Infolist
นอกจาก 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: '-'), // -
การแสดงวันที่ภาษาไทยใน Table Column
เช่นเดียวกับ 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
License
The MIT License (MIT).
