การใช้งาน Date Object ใน JavaScript
ใน JavaScript, Date object เป็นเครื่องมือสำคัญสำหรับการจัดการวันที่และเวลา ไม่ว่าจะเป็นการสร้างวันที่ใหม่, การดึงข้อมูลส่วนประกอบของวันที่ (เช่น ปี, เดือน, วัน, ชั่วโมง, นาที, วินาที), หรือการจัดรูปแบบวันที่ให้อยู่ในรูปแบบที่ต้องการ บทความนี้จะพาคุณไปทำความรู้จักกับ Date object และวิธีการใช้งานเบื้องต้น
การสร้าง Date Object
การสร้าง Date object สามารถทำได้หลายวิธี ดังนี้:
- การสร้าง Date object ด้วยเวลาปัจจุบัน:
const now = new Date();
console.log(now); // แสดงวันที่และเวลาปัจจุบัน
const specificDate = new Date('2024-01-15T10:30:00'); // ISO 8601 format
console.log(specificDate);
const anotherDate = new Date(2024, 0, 15, 10, 30, 0); // ปี, เดือน (เริ่มที่ 0), วัน, ชั่วโมง, นาที, วินาที
console.log(anotherDate);
ข้อควรจำ: เดือนใน JavaScript เริ่มต้นที่ 0 (มกราคม) ถึง 11 (ธันวาคม)
const timestamp = Date.now(); // จำนวน milliseconds ตั้งแต่ January 1, 1970, 00:00:00 UTC
console.log(timestamp);
const dateFromTimestamp = new Date(timestamp);
console.log(dateFromTimestamp);
แต่ละวิธีให้ผลลัพธ์ที่แตกต่างกัน ขึ้นอยู่กับความต้องการในการใช้งาน
การ Get และ Set Date Components
เมื่อมี Date object แล้ว เราสามารถดึงข้อมูลส่วนประกอบต่างๆ ของวันที่และเวลาได้ โดยใช้ methods ต่างๆ ดังนี้:
- Get Methods:
getFullYear(): คืนค่าปี (เป็นตัวเลข 4 หลัก)getMonth(): คืนค่าเดือน (0-11)getDate(): คืนค่าวันที่ (1-31)getDay(): คืนค่าวันในสัปดาห์ (0-6, 0 คือวันอาทิตย์)getHours(): คืนค่าชั่วโมง (0-23)getMinutes(): คืนค่านาที (0-59)getSeconds(): คืนค่าวินาที (0-59)getMilliseconds(): คืนค่า milliseconds (0-999)getTime(): คืนค่า timestamp (milliseconds ตั้งแต่ January 1, 1970, 00:00:00 UTC)- Set Methods:
setFullYear(year): กำหนดปีsetMonth(month): กำหนดเดือน (0-11)setDate(day): กำหนดวันที่ (1-31)setHours(hour): กำหนดชั่วโมง (0-23)setMinutes(minute): กำหนดนาที (0-59)setSeconds(second): กำหนดวินาที (0-59)setMilliseconds(millisecond): กำหนด milliseconds (0-999)setTime(milliseconds): กำหนด timestamp
ตัวอย่างการใช้งาน:
const today = new Date();
const year = today.getFullYear();
const month = today.getMonth();
const day = today.getDate();
console.log(`วันนี้วันที่ ${day} เดือน ${month + 1} ปี ${year}`); // เดือนต้องบวก 1 เพราะเริ่มต้นที่ 0
today.setFullYear(2025);
today.setMonth(11); // ธันวาคม
today.setDate(25);
console.log(today); // วันที่ถูกเปลี่ยนแปลง
การ Format Date
JavaScript มี methods สำหรับการ format date ในรูปแบบต่างๆ แต่โดยทั่วไปมักจะไม่เพียงพอต่อความต้องการที่ซับซ้อน ดังนั้นจึงนิยมใช้ libraries ภายนอก เช่น Moment.js (แม้ว่าปัจจุบันจะถือว่า legacy แล้ว) หรือ Luxon เพื่อช่วยในการ format date
- Methods พื้นฐานสำหรับการ Format Date:
toDateString(): คืนค่าวันที่ในรูปแบบที่อ่านง่าย (เช่น "Mon Jan 15 2024")toLocaleDateString(): คืนค่าวันที่ในรูปแบบที่เหมาะสมกับ locale (ภาษาและภูมิภาค)toTimeString(): คืนค่าเวลาในรูปแบบที่อ่านง่าย (เช่น "10:30:00 GMT+0700 (Indochina Time)")toLocaleTimeString(): คืนค่าเวลาในรูปแบบที่เหมาะสมกับ localetoISOString(): คืนค่าวันที่และเวลาในรูปแบบ ISO 8601 (เช่น "2024-01-15T03:30:00.000Z")- ตัวอย่างการใช้งาน:
const now = new Date();
console.log(now.toDateString());
console.log(now.toLocaleDateString('th-TH')); // รูปแบบวันที่แบบไทย
console.log(now.toTimeString());
console.log(now.toISOString());
การใช้ Libraries สำหรับ Format Date (ตัวอย่าง: Luxon):
Luxon เป็น library ที่ทันสมัยและแนะนำให้ใช้แทน Moment.js สำหรับการจัดการวันที่และเวลาที่ซับซ้อน
// ติดตั้ง Luxon: npm install luxon
const { DateTime } = require('luxon');
const now = DateTime.now();
console.log(now.toLocaleString(DateTime.DATE_FULL)); // รูปแบบวันที่แบบเต็ม
console.log(now.toFormat('yyyy-MM-dd HH:mm:ss')); // รูปแบบที่กำหนดเอง
ข้อดีของการใช้ Libraries:
- รองรับรูปแบบวันที่และเวลาที่หลากหลาย
- จัดการ Timezone ได้อย่างมีประสิทธิภาพ
- API ที่ใช้งานง่ายและมีความยืดหยุ่นสูง
สรุป
Date object ใน JavaScript เป็นเครื่องมือพื้นฐานที่สำคัญสำหรับการจัดการวันที่และเวลา การเข้าใจวิธีการสร้าง, การดึงข้อมูล, และการจัดรูปแบบวันที่ จะช่วยให้คุณสามารถทำงานกับข้อมูลวันที่และเวลาได้อย่างมีประสิทธิภาพมากยิ่งขึ้น สำหรับความต้องการที่ซับซ้อน แนะนำให้ใช้ libraries ภายนอก เช่น Luxon เพื่อความสะดวกและยืดหยุ่นในการใช้งาน
ในบทความถัดไป เราจะพูดถึงการใช้งาน Math object ซึ่งเป็น object ที่มี methods และ properties สำหรับการคำนวณทางคณิตศาสตร์