TypeScript:
เปรียบเทียบสองวันที่
วิธีทำ:
ลองเปรียบเทียบวันที่กัน:
const date1 = new Date('2023-04-01T00:00:00Z');
const date2 = new Date('2023-04-02T00:00:00Z');
// date1 อยู่ก่อน date2 หรือไม่?
console.log(date1 < date2); // true
// date1 เหมือนกับ date2 หรือไม่?
console.log(date1.getTime() === date2.getTime()); // false
// ห่างกันกี่วัน?
const diffTime = Math.abs(date2.getTime() - date1.getTime());
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
console.log(diffDays); // 1
ผลลัพธ์ตัวอย่าง:
true
false
1
ลึกซึ้ง
กลับไปในอดีต, วันที่มีหลายรูปแบบและการคำนวณที่ซับซ้อน. ด้วย JavaScript (และ TypeScript โดยการขยาย), วัตถุ Date
ได้ทำให้สิ่งต่าง ๆ ง่ายขึ้น, ทำให้การจัดการเวลามีมาตรฐาน
มีทางเลือกอื่นหรือ? แน่นอน. ไลบรารีเช่น moment.js
หรือ date-fns
เพิ่มฟังก์ชันนาลิตี้ให้กับการจัดการวันที่ด้วยความสามารถเพิ่มเติม. แต่สำหรับการเปรียบเทียบพื้นฐาน? ความเรียบง่ายของ Date แบบเนทีฟมักจะทำงานได้ดี
ใต้ฮู้ด, Date.getTime()
ได้มิลลิวินาทีนับตั้งแต่ยุคแรก (1 ม.ค. 1970). การเปรียบเทียบค่าเหล่านี้ช่วยกำจัดคดีของเขตเวลาและวินาทีอึด, ทำให้มันเป็นเพียงแค่ตัวเลข
ดูเพิ่มเติม
- Mozilla Developer Network Date Reference สำหรับข้อมูลเชิงลึกของวัตถุ Date
- You Don’t Need Moment.js สำหรับเวลาที่คุณอาจหรืออาจไม่ต้องการไลบรารี
- TypeScript Official Documentation สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพลังและปัญหาของ TypeScript