แปลงวันที่ภาษาไทย ด้วย thaidate() ใน PHP และ Laravel

26 กุมภาพันธ์ 2564 เวลาอ่าน 4 นาที
แปลงวันที่ภาษาไทย ด้วย thaidate() ใน PHP และ Laravel

ฟังก์ชัน date() ใน PHP ช่วยให้เราจัด format วันที่ที่เราต้องการแสดงผลได้ แต่ format ที่ออกมาเป็นภาษาอังกฤษเท่านั้น ในบทความนี้จะมาแนะนำ function thaidate() ที่ช่วยให้เราจัด format วันที่ใน PHP ให้เป็นภาษาไทยได้กัน

package ที่เราจะนำมาใช้คือ phattarachai/thaidate

composer require phattarachai/thaidate

package นี้จะเพิ่มฟังก์ชัน thaidate() ให้เราใช้ได้ โดย parameter ที่รับ เหมือนกัน function date() ใน PHP

thaidate('l j F Y', '2021-02-25');
// พฤหัสบดี 25 กุมภาพันธ์ 2564

Format ที่รับใช้รูปแบบเดียวกันกับ Date format ใน PHP

Parameter ตัวที่สองเราสามารถส่งเป็น String แบบเดียวที่ส่งได้กับ function strtotime() เราจึงสามารถส่งเป็น string ที่สามารถแปลงเป็นวันที่ได้เช่น

thaidate('l j F Y', 'now');
thaidate('l j F Y', 'next week');
thaidate('l j F Y', 'next month');
thaidate('l j F Y', '-3 days');
thaidate('l j F Y', 'yesterday');
thaidate('l j F Y', 'tomorrow');

ใช้ thaidate() กับ Laravel Carbon

ใน Laravel จะมีการใช้ Carbon Package ในการจัดการกับวันที่อยู่แล้ว package นี้ก็ได้เพิ่ม method thaidate() ให้แก่ Laravel Carbon instance เพื่อให้เรียกใช้งานได้ง่ายขึ้น

use Illuminate\Support\Carbon;

Carbon::parse('2021-02-25')->thaidate('D j M y')
// พฤ. 25 ก.พ. 64

ในเบื้องหลัง package นี้ใช้ความสามารถของ Laravel macro ในการเพิ่ม functionality ให้แก่ คลาส Carbon ใน Laravel

นั่นแปลว่าเราสามารถใช้ method thaidate() ใน Eloquent Model attributes ที่มีการ cast เป็น datetime ได้โดยตรงเช่นกัน

use Illuminate\Database\Eloquent\Model;

class Post extends Model 
{
    protected $dates = ['published_date'];
}

$post->published_date->thaidate('D j M y')
// พฤ. 25 ก.พ. 64

ดูรายละเอียดเพิ่มเติมได้ที่ Github Repository

Phattarachai Chaimongkol

เกี่ยวกับ phattarachai.dev

ผมอ๊อฟนะครับ เป็นผู้ประกอบการอิสระ ที่ปรึกษาทางด้าน Web Application Development ให้แก่องค์กร ธุรกิจ SME และหน่วยงานราชการ
Web Developer ผู้มีใจรักใน Laravel เป็นพาร์ทเนอร์บริษัท Digital Agency ชั้นนำทางด้าน UX/UI เพื่อพัฒนาโปรเจคให้แก่ลูกค้า ผมช่วยสร้างเครื่องมือทางด้าน Web ที่มีคุณภาพให้ผู้ประกอบการดำเนินธุรกิจได้ง่ายขึ้นใช้งานได้จริง เน้นประสบการณ์ ความชำนาญ ผลงานคุ้มค่าเทียบเท่าจ้างงานกับบริษัทใหญ่ ๆ

ยามว่าง ๆ ชอบเล่นเกมส์บน Steam ครับ

เรื่องที่เกี่ยวข้อง

PHP function แสดงค่าเงินบาทเป็นภาษาไทย
26 กุมภาพันธ์ 2564
PHP function แสดงค่าเงินบาทเป็นภาษาไทย
แสดง DatePicker ปี พ.ศ. เป็นภาษาไทย ด้วย FilamentPHP
26 กุมภาพันธ์ 2564
แสดง DatePicker ปี พ.ศ. เป็นภาษาไทย ด้วย FilamentPHP
วิธีการเช็ค Detect Browser ผู้ใช้จาก Laravel
26 กุมภาพันธ์ 2564
วิธีการเช็ค Detect Browser ผู้ใช้จาก Laravel