JavaScript:
การคำนวณวันที่ในอนาคตหรืออดีต
วิธีการ:
อ็อบเจกต์ Date
ใน JavaScript คือตัวเลือกแรกสำหรับการเล่นกับวันที่ มาดูตัวอย่างกันบ้าง:
// วันนี้
let today = new Date();
console.log(today); // แสดงผลวันที่และเวลาปัจจุบัน
// คำนวณวันที่ 7 วันในอนาคต
let nextWeek = new Date();
nextWeek.setDate(today.getDate() + 7);
console.log(nextWeek); // แสดงผลวันที่ในเวลาเดียวกัน, อีก 7 วันข้างหน้า
// คำนวณวันที่ 30 วันในอดีต
let lastMonth = new Date();
lastMonth.setDate(today.getDate() - 30);
console.log(lastMonth); // แสดงผลวันที่ในเวลาเดียวกัน, 30 วันที่ผ่านมา
// ตั้งวันที่ 1 ปีในอนาคต
let nextYear = new Date();
nextYear.setFullYear(today.getFullYear() + 1);
console.log(nextYear); // แสดงผลวันที่ในเวลาเดียวกันปีหน้า
ผลลัพธ์ขึ้นอยู่กับเมื่อคุณรันโค้ดนี้ เนื่องจาก today
เป็นวันที่-เวลาของคุณในปัจจุบัน
ลึกซึ้งยิ่งขึ้น
ก่อนที่ JavaScript จะมีฟังก์ชันการจัดการวันที่ในตัว, โปรแกรมเมอร์ต้องคำนวณวันที่ด้วยตัวเอง โดยคำนึงถึงความแตกต่างในความยาวของเดือน, ปีอธิกสุรทิน, และเขตเวลา - ซึ่งเป็นปัญหาใหญ่! ด้วย Date
, ปัญหาส่วนใหญ่เหล่านี้จะหายไป
ทางเลือกอื่นนอกเหนือจากอ็อบเจกต์ Date
ปกติ รวมถึงไลบรารีเช่น moment.js
และ date-fns
, ที่นำเสนอไวยากรณ์ที่หลากหลายขึ้นและแก้ไขจุดบกพร่องเช่นบั๊กเรื่องเวลาออมแสง.
เมื่อคำนวณวันที่, จำไว้ว่า: Date
นับเดือนตั้งแต่ 0 (มกราคม) ถึง 11 (ธันวาคม), ไม่ใช่ 1-12 และอย่าลืมเรื่องปีอธิกสุรทินเมื่อทำงานกับวันที่ของเดือนกุมภาพันธ์
ดูเพิ่มเติม
- MDN Web Docs เกี่ยวกับ Date: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
- moment.js: https://momentjs.com/
- date-fns: https://date-fns.org/