การคำนวณวันที่ในอนาคตหรืออดีต

TypeScript:
การคำนวณวันที่ในอนาคตหรืออดีต

วิธีการ:

// รับวันที่ปัจจุบัน
const today: Date = new Date();

// คำนวณ 10 วันในอนาคต
const tenDaysLater: Date = new Date(today.getTime() + (10 * 24 * 60 * 60 * 1000));
console.log(`สิบวันจากนี้: ${tenDaysLater.toDateString()}`);

// คำนวณ 10 วันในอดีต
const tenDaysBefore: Date = new Date(today.getTime() - (10 * 24 * 60 * 60 * 1000));
console.log(`สิบวันก่อนหน้านี้เป็นวันที่: ${tenDaysBefore.toDateString()}`);

ตัวอย่างผลลัพธ์:

สิบวันจากนี้: Sun Apr 23 2023
สิบวันก่อนหน้านี้เป็นวันที่: Wed Apr 03 2023

ลึกซึ้ง

ในอดีต, การจัดการวันที่ใน JavaScript—และยืดอกไปถึง TypeScript—ได้เป็นเรื่องที่ท้าทายเนื่องจากความแปลกประหลาดของวัตถุ Date และเขตเวลา ไลบรารีทางเลือกเช่น Moment.js และ date-fns ได้เสนอการแยกประเภทเพื่อจัดการกับความซับซ้อนนี้ ด้วย ES6, การสนับสนุนสำหรับการทำให้เป็นสากลได้รับการปรับปรุงผ่าน API Intl, ซึ่ง TypeScript ยังสามารถใช้งานได้

เมื่อคำนวณวันที่, ให้ระวังการเปลี่ยนแปลงเวลาออมแสงและวินาทีอัพเกรด เหล่านี้สามารถทำให้การคำนวณตรงไปตรงมาเช่นการเพิ่ม 24 ชั่วโมงให้กับวันที่หลุดลอยไป นอกจากนี้, ให้พิจารณาเสมอถึงท้องถิ่นและเขตเวลาของผู้ใช้เมื่อแสดงวันที่ที่คำนวณ

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

import { addDays } from 'date-fns';

const result = addDays(new Date(2023, 3, 13), 10); // 13 เมษายน 2023 + 10 วัน
console.log(result.toDateString());

พวกเขายังจัดการกับกรณีขอบและปัญหาเขตเวลา, ทำให้การคำนวณวันที่หลุดจากความยากลำบากได้อย่างมาก

ดูเพิ่มเติม