TypeScript:
Een datum in de toekomst of het verleden berekenen
Hoe te:
// Huidige datum ophalen
const today: Date = new Date();
// 10 dagen in de toekomst berekenen
const tenDaysLater: Date = new Date(today.getTime() + (10 * 24 * 60 * 60 * 1000));
console.log(`Over tien dagen: ${tenDaysLater.toDateString()}`);
// 10 dagen in het verleden berekenen
const tenDaysBefore: Date = new Date(today.getTime() - (10 * 24 * 60 * 60 * 1000));
console.log(`Tien dagen geleden was: ${tenDaysBefore.toDateString()}`);
Voorbeelduitvoer:
Over tien dagen: Zon Apr 23 2023
Tien dagen geleden was: Woe Apr 03 2023
Uitdieping
Historisch gezien is het beheren van datums in JavaScript—en bij uitbreiding TypeScript—lastig geweest vanwege de eigenaardigheden van het Date-object en tijdzones. Alternatieve bibliotheken zoals Moment.js en date-fns hebben abstracties geboden om deze complexiteit te hanteren. Met ES6 kwam betere ondersteuning voor internationalisatie via de Intl
API, die TypeScript ook kan gebruiken.
Bij het berekenen van datums, let op veranderingen in de zomertijd en schrikkelseconden. Deze kunnen eenvoudige berekeningen zoals het toevoegen van 24 uur aan een datum verstoren. Overweeg ook altijd de locale en tijdzone van de gebruiker bij het weergeven van berekende datums.
Voor brede compatibiliteit en flexibiliteit zou je kunnen kiezen voor bibliotheken zoals date-fns
of Luxon
, die modulair zijn en geweldig voor complexe taken. Bijvoorbeeld, met date-fns
, kun je gemakkelijk dagen toevoegen:
import { addDays } from 'date-fns';
const result = addDays(new Date(2023, 3, 13), 10); // 13 april 2023 + 10 dagen
console.log(result.toDateString());
Ze behandelen ook randgevallen en tijdzoneproblemen, waardoor veel van de pijn van datumrekenkunde weggenomen wordt.