Obliczanie daty w przyszłości lub przeszłości

TypeScript:
Obliczanie daty w przyszłości lub przeszłości

How to:

const calculateDate = (startingDate: Date, daysDelta: number): Date => {
  const resultDate = new Date(startingDate);
  resultDate.setDate(resultDate.getDate() + daysDelta);
  return resultDate;
};

const today = new Date();
const nextWeek = calculateDate(today, 7);
const lastMonth = calculateDate(today, -30);

console.log(`Next week: ${nextWeek.toLocaleDateString()}`);
console.log(`Last month: ${lastMonth.toLocaleDateString()}`);

Output:

Next week: 04/14/2023
Last month: 03/11/2023

Deep Dive

Data i czas to fundamentalne pojęcia, z którymi programiści muszą się zmagać od początku ery komputerów. JavaScript (a więc i TypeScript) używają obiektu Date do manipulacji datami. Można dodawać lub odejmować dni używając metody setDate i getDate.

Istnieją alternatywy takie jak biblioteki moment.js czy date-fns, które oferują bardziej zaawansowane operacje i formatowanie dat, ale mogą być nadmiarem dla prostych operacji. TypeScript pozwala na strukturę i typowanie, co czyni operacje na datach bardziej przewidywalne.

Kolejnym ważnym kwestią jest strefa czasowa. Praca na obiektach Date w JS bez uwzględniania stref czasowych może prowadzić do nieoczekiwanych wyników. Domyślnie Date używa strefy czasowej ustawionej w systemie użytkownika, co trzeba mieć na uwadze podczas operacji na datach.

See Also