แปลง date เป็นวันที่ภาษาไทย
Nuttavut Thongjor
JavaScript

เรียนรู้การใช้งาน toLocaleDateString เพื่อแปลงออบเจ็กต์ของ date เป็นข้อความวันที่ภาษาไทย

คำอธิบาย
ความคิดเห็น

toLocaleDateString เป็นเมธอดของ Date เพื่อใช้แปลงออบเจ็กต์ของ Date เป็นข้อความวันที่ตาม Locale และฟอร์แมตที่ระบุ มีรูปแบบการใช้งานคือ dateObj.toLocaleDateString([locales [, options]]) เช่น

JavaScript
1const date = new Date(2020, 7, 1)
2
3const result = date.toLocaleDateString('th-TH', {
4 year: 'numeric',
5 month: 'long',
6 day: 'numeric',
7})

ผลลัพธ์ของ result ที่ได้คือ 1 สิงหาคม 2563

หมายเหตุ: ในส่วนของเดือนนั้นค่าเริ่มต้นคือ 0 หมายถึงเดือน มกราคม และ 11 คือเดือนธันวาคมครับ ฉะนั้นเลข 7 จึงหมายถึงเดือน 8 หรือเดือนสิงหาคมนั่นเอง

ตามตัวอย่างข้างต้นระบุ locales ให้มีค่าเป็น th-TH เพื่อแสดงผลภาษาไทย ในส่วนของ options นั้น ระบุให้แสดงผลปีเป็นตัวเลข เดือนเป็นข้อความ และวันเป็นตัวเลขเช่นกัน จึงเกิดการฟอร์แมตผลลัพธ์ตามข้างต้น

ส่วนของ options นอกจากสามารถระบุ year, month และ day ได้แล้ว ค่าอื่นที่สามารถระบุเพิ่มได้ เช่น weekday, era, hour, minute, second, timeZoneName เป็นต้น

JavaScript
1const date = new Date(2020, 7, 1)
2
3const result = date.toLocaleDateString('th-TH', {
4 year: 'numeric',
5 month: 'long',
6 day: 'numeric',
7 weekday: 'long',
8})

จากโค้ดข้างต้นผลลัพธ์ของ result คือ วันเสาร์ที่ 1 สิงหาคม 2563

ในแต่ละค่าของ option สามารถกำหนดค่าการแสดงผลได้แตกต่างกัน เช่น กรณีของวันเสาร์ที่เป็นส่วนแสดงของ weekly สามารถกำหนดค่าเป็น long เพื่อแสดงคำเต็มคือ วันเสาร์ (Saturday ในภาษาอังกฤษ) กำหนดเป็น short เพื่อแสดงแบบย่อเป็น ส. (Sat ในภาษาอังกฤษ) หรือกำหนดเป็น narrow เพื่อแสดงเป็น (S ในภาษาอังกฤษ) ก็ได้เช่นกัน