phattarachai/filament-thai-date-picker

FilamentPHP Thai Date Picker Form Component
1,937 6
Install
composer require phattarachai/filament-thai-date-picker
Latest Version:2.2.0
PHP:^8.2
License:MIT
Last Updated:Mar 24, 2026
Links: GitHub  ·  Packagist
Maintainer: phatchai

FilamentPHP Thai Date Picker Form Component

Latest Version on Packagist Total Downloads

ปฏิทิน Thai Date Picker สำหรับ Filament Form Component วัน/เดือน/ปีที่แสดงใน Form เป็นภาษาไทย (พ.ศ.) แต่เก็บเข้า Model เป็นปี ค.ศ.ตามปกติ

Thai Date Picker

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).