แปลงวันที่ภาษาไทย ด้วย thaidate() ใน PHP และ Laravel
26 กุมภาพันธ์ 2564
ฟังก์ชัน 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