แปลงวันที่ภาษาไทย ด้วย 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