การใช้งานวันและเวลาในภาษาจาวาสคริปต์

 


การใช้งานวันและเวลาในภาษาจาวาสคริปต์ (JavaScript)

ในจาวาสคริปต์ การจัดการกับวันและเวลาเป็นสิ่งสำคัญที่มักต้องใช้ในหลายๆ โปรแกรม ไม่ว่าจะเป็นการบันทึกวันที่ การคำนวณเวลาที่ผ่านไป หรือการแสดงผลวันที่ในรูปแบบต่างๆ บทความนี้จะนำเสนอคำสั่ง โครงสร้าง และวิธีการใช้งานเกี่ยวกับวันและเวลาในจาวาสคริปต์อย่างละเอียด

1. การสร้างวัตถุ Date

ในจาวาสคริปต์ การจัดการวันและเวลาใช้วัตถุ Date เป็นหลัก คุณสามารถสร้างวัตถุ Date ได้โดยใช้คำสั่งดังนี้:

javascript

// สร้างวัตถุ Date ที่แสดงวันและเวลาปัจจุบัน let currentDate = new Date(); console.log(currentDate); // สร้างวัตถุ Date โดยกำหนดวันที่และเวลาเอง let specificDate = new Date('2024-08-10T12:00:00'); console.log(specificDate); // สร้างวัตถุ Date โดยกำหนดปี เดือน วัน ชั่วโมง นาที และวินาที let anotherDate = new Date(2024, 7, 10, 12, 0, 0); // เดือนจะเริ่มจาก 0 คือ ม.ค. console.log(anotherDate);


2. การดึงข้อมูลวันและเวลา

วัตถุ Date มีเมธอดหลายตัวที่ใช้ในการดึงข้อมูลวันและเวลา เช่น ปี เดือน วัน ชั่วโมง นาที และวินาที:

javascript

let date = new Date(); console.log("ปี:", date.getFullYear()); console.log("เดือน:", date.getMonth() + 1); // เพิ่ม 1 เพราะเดือนเริ่มจาก 0 console.log("วัน:", date.getDate()); console.log("วันในสัปดาห์:", date.getDay()); // 0 คือ อาทิตย์ console.log("ชั่วโมง:", date.getHours()); console.log("นาที:", date.getMinutes()); console.log("วินาที:", date.getSeconds());


3. การตั้งค่าเวลา

คุณสามารถตั้งค่าค่าต่างๆ ในวัตถุ Date ได้โดยใช้เมธอดที่เกี่ยวข้อง เช่น setFullYear หรือ setHours เป็นต้น:

javascript

let date = new Date(); date.setFullYear(2025); date.setMonth(11); // ธ.ค. date.setDate(25); date.setHours(10); date.setMinutes(30); date.setSeconds(15); console.log(date);


4. การคำนวณเวลา

จาวาสคริปต์อนุญาตให้คุณคำนวณเวลาระหว่างวันที่สองวันได้โดยตรงโดยใช้การลบวัตถุ Date ซึ่งผลลัพธ์จะออกมาเป็นมิลลิวินาที:

javascript

let startDate = new Date('2024-08-01'); let endDate = new Date('2024-08-10'); let timeDiff = endDate - startDate; console.log("ความต่างในมิลลิวินาที:", timeDiff); let daysDiff = timeDiff / (1000 * 60 * 60 * 24); // แปลงเป็นวัน console.log("ความต่างในวัน:", daysDiff);


5. การจัดรูปแบบวันที่และเวลา

การจัดรูปแบบวันที่ในจาวาสคริปต์สามารถทำได้หลายวิธี ขึ้นอยู่กับความต้องการของคุณ เช่น การใช้เมธอด toLocaleDateString หรือการใช้ไลบรารีอย่าง moment.js:

javascript

let date = new Date(); console.log("รูปแบบพื้นฐาน:", date.toString()); console.log("เฉพาะวันที่:", date.toLocaleDateString()); console.log("เฉพาะเวลา:", date.toLocaleTimeString()); // จัดรูปแบบโดยกำหนดเอง let options = { year: 'numeric', month: 'long', day: 'numeric' }; console.log("วันที่แบบกำหนดเอง:", date.toLocaleDateString('th-TH', options));


6. การใช้งานไลบรารีเพิ่มเติม

ถ้าต้องการการจัดการวันและเวลาที่ซับซ้อนขึ้น สามารถใช้ไลบรารีอย่าง moment.js ซึ่งมีฟังก์ชันที่ทรงพลังในการจัดการและจัดรูปแบบวันที่และเวลา:

javascript

// ต้องทำการติดตั้ง moment.js ก่อน // npm install moment const moment = require('moment'); let date = moment(); console.log("วันที่ในรูปแบบ custom:", date.format('YYYY-MM-DD HH:mm:ss'));


การใช้งานไลบรารีเพิ่มเติมในการจัดการวันและเวลา

การจัดการวันและเวลาในจาวาสคริปต์สามารถทำได้ด้วยวัตถุ Date พื้นฐาน แต่บางครั้งการใช้งานในโปรเจกต์ที่ซับซ้อนหรือมีข้อกำหนดเฉพาะทางอาจต้องการความสามารถเพิ่มเติมหรือวิธีการที่สะดวกกว่า ในกรณีนี้ การใช้ไลบรารีเพิ่มเติม เช่น Moment.js หรือ date-fns จะช่วยให้การจัดการวันและเวลาเป็นไปอย่างราบรื่นและยืดหยุ่นยิ่งขึ้น

6.1 การใช้งาน Moment.js

Moment.js เป็นไลบรารีที่ได้รับความนิยมอย่างมากสำหรับการจัดการวันและเวลาในจาวาสคริปต์ ด้วยความสามารถที่หลากหลาย เช่น การจัดรูปแบบ (formatting) การคำนวณ (calculation) และการแปลงโซนเวลา (timezone conversion) Moment.js ทำให้การจัดการกับวันที่ในโปรแกรมของคุณง่ายและสะดวกมากขึ้น

การติดตั้ง Moment.js

ก่อนใช้งาน Moment.js คุณต้องทำการติดตั้งไลบรารีนี้ก่อน สามารถติดตั้งได้ผ่าน npm ดังนี้:

bash

npm install moment


จากนั้นสามารถนำเข้า Moment.js ในไฟล์จาวาสคริปต์ของคุณได้โดยใช้คำสั่ง:

javascript

const moment = require('moment');


หรือหากใช้งานบนเว็บเพจ สามารถใส่ CDN ดังนี้:

html

<script src="https://cdn.jsdelivr.net/npm/moment@2.29.1/min/moment.min.js"></script>

การใช้งาน Moment.js

1. การสร้างวัตถุ Moment:

คุณสามารถสร้างวัตถุ moment ได้ด้วยหลายวิธีคล้ายกับ Date ในจาวาสคริปต์พื้นฐาน:

javascript

let now = moment(); // เวลาปัจจุบัน let specificDate = moment('2024-08-10', 'YYYY-MM-DD'); // วันที่กำหนดเอง


2. การจัดรูปแบบวันที่:

การจัดรูปแบบวันที่และเวลาใน Moment.js นั้นทำได้อย่างง่ายดายโดยใช้เมธอด format:

javascript

let now = moment(); console.log(now.format('YYYY-MM-DD HH:mm:ss')); // จัดรูปแบบเป็นปี-เดือน-วัน ชั่วโมง:นาที:วินาที console.log(now.format('dddd, MMMM Do YYYY')); // รูปแบบ: วัน, เดือน วันที่ ปี


3. การเพิ่มและลบเวลา:

Moment.js ช่วยให้การคำนวณเวลาเป็นเรื่องง่ายด้วยเมธอด add และ subtract:

javascript

let future = moment().add(7, 'days'); // เพิ่ม 7 วันจากเวลาปัจจุบัน let past = moment().subtract(1, 'month'); // ลบ 1 เดือนจากเวลาปัจจุบัน console.log("อีก 7 วัน:", future.format('YYYY-MM-DD')); console.log("เดือนที่แล้ว:", past.format('YYYY-MM-DD'));


4. การคำนวณความแตกต่างระหว่างวันที่:

การคำนวณความแตกต่างระหว่างวันที่สองวันสามารถทำได้โดยใช้เมธอด diff ซึ่งจะคืนค่าความแตกต่างในหน่วยที่กำหนด (วัน, ชั่วโมง, นาที ฯลฯ):

javascript

let start = moment('2024-08-01'); let end = moment('2024-08-10'); let daysDiff = end.diff(start, 'days'); console.log("ความแตกต่างในวัน:", daysDiff); // จะแสดงผลเป็น 9 วัน


5. การทำงานกับ Timezones:

Moment.js สามารถจัดการกับโซนเวลาได้ง่ายๆ โดยใช้ไลบรารีเสริม moment-timezone:

javascript

const moment = require('moment-timezone'); let nowInTokyo = moment.tz("2024-08-10 12:00", "Asia/Tokyo"); console.log("เวลาที่โตเกียว:", nowInTokyo.format()); let nowInNY = nowInTokyo.clone().tz("America/New_York"); console.log("เวลาที่นิวยอร์ก:", nowInNY.format());


6.2 การใช้งาน date-fns

date-fns เป็นอีกหนึ่งไลบรารีสำหรับการจัดการวันและเวลาในจาวาสคริปต์ที่ได้รับความนิยม date-fns โดดเด่นในเรื่องความง่ายในการใช้งาน และมีฟังก์ชันที่จัดการกับวันที่อย่างละเอียด เช่น การจัดรูปแบบ การคำนวณ และการปรับค่า

การติดตั้ง date-fns

สามารถติดตั้ง date-fns ได้ผ่าน npm:

bash

npm install date-fns


การใช้งาน date-fns

1. การจัดรูปแบบวันที่:

ฟังก์ชัน format ใน date-fns ช่วยให้จัดรูปแบบวันที่ได้ง่าย:

javascript

const { format } = require('date-fns'); let now = new Date(); console.log(format(now, 'yyyy-MM-dd HH:mm:ss')); // รูปแบบ: ปี-เดือน-วัน ชั่วโมง:นาที:วินาที


2. การเพิ่มและลบเวลา:

คุณสามารถเพิ่มหรือลบเวลาได้ด้วยฟังก์ชัน add และ sub:

javascript

const { add, sub } = require('date-fns'); let now = new Date(); let future = add(now, { days: 7 }); let past = sub(now, { months: 1 }); console.log("อีก 7 วัน:", format(future, 'yyyy-MM-dd')); console.log("เดือนที่แล้ว:", format(past, 'yyyy-MM-dd'));


3. การคำนวณความแตกต่างระหว่างวันที่:

การคำนวณความแตกต่างระหว่างวันที่ทำได้ด้วยฟังก์ชัน differenceInDays:

javascript

const { differenceInDays } = require('date-fns'); let start = new Date('2024-08-01'); let end = new Date('2024-08-10'); let daysDiff = differenceInDays(end, start); console.log("ความแตกต่างในวัน:", daysDiff); // จะแสดงผลเป็น 9 วัน


6.3 การเลือกใช้ไลบรารี

การเลือกใช้ไลบรารีใดๆ นั้นขึ้นอยู่กับความต้องการของโปรเจกต์:

  • หากโปรเจกต์ของคุณต้องการการจัดการวันและเวลาที่ซับซ้อน เช่น การจัดการ timezone หรือการคำนวณเวลา Moment.js จะเป็นตัวเลือกที่ดี
  • หากคุณต้องการไลบรารีที่เบา และเน้นความง่ายในการใช้งาน date-fns จะตอบโจทย์ในกรณีนี้

ทั้งสองไลบรารีนี้จะช่วยให้คุณจัดการกับวันและเวลาในโปรแกรมได้อย่างมีประสิทธิภาพและง่ายดายกว่าการใช้วัตถุ Date พื้นฐานของจาวาสคริปต์

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า