JavaScript:
เปรียบเทียบสองวันที่
วิธีการ:
วัตถุ Date
ใน JavaScript มาพร้อมกับความสะดวก ในการเปรียบเทียบพวกเขา, พวกเขาจะถูกแปลงเป็นมิลลิวินาทีนับตั้งแต่วันที่ 1 มกราคม พ.ศ. 2513, UTC
let date1 = new Date('2021-07-24');
let date2 = new Date('2021-07-25');
console.log(date1 < date2); // จริง
console.log(date1 > date2); // ไม่จริง
console.log(date1.getTime() === date2.getTime()); // ไม่จริง
ตัวอย่างผลลัพธ์:
true
false
false
การศึกษาลึก
ในส่วนที่ซับซ้อน, วัตถุ Date
นั้นเป็นเพียงมิลลิวินาที ในอดีต, โปรแกรมเมอร์ต้องจัดการปฏิบัติการวันที่ด้วยตนเอง, คำนวณเวลาที่ผ่านไปจากจุดข้อมูล, บ่อยครั้งที่เสี่ยงต่อข้อผิดพลาด การเปรียบเทียบวัตถุ Date
ทำให้ชีวิตง่ายขึ้น, ถึงแม้ยังไม่ปลอดภัยจากข้อผิดพลาด, เฉพาะกับโซนเวลาและการปรับเปลี่ยนเวลาออมแสง
มีทางเลือก? แน่นอน ไลบรารีเช่น moment.js
หรือ date-fns
ช่วยจัดการกับสถานการณ์ที่ซับซ้อนและให้ความสะดวกเพิ่มเติมสำหรับการจัดการวันที่
ในเรื่องของการดำเนินการ, สำคัญที่จะต้องจำไว้ว่าการเปรียบเทียบวัตถุ Date
โดยตรง (ด้วย ==
) เป็นการเปรียบเทียบอ้างอิง, ไม่ใช่ค่า ใช้ getTime()
เพื่อการเปรียบเทียบค่าอย่างแม่นยำ และระวังโซนเวลาเมื่อวิเคราะห์วันที่; มีโอกาสที่จะพลาดง่ายถ้าคุณไม่ระมัดระวัง
ดูเพิ่มเติม
- เอกสารบนเว็บ MDN เกี่ยวกับ 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/