Mis on date-fns?

date-fns on kaasaegne JavaScripti kuupäevade utiliitide teek, mis pakub põhjalikke, järjekindlaid ja usaldusväärseid tööriistu kuupäevadega töötamiseks JavaScriptis. Erinevalt natiivset JavaScripti Date objektist, millel on palju nüansse ja ebakõlasid, pakub date-fns moodulaarset, funktsionaalset lähenemist kuupäevade manipuleerimiseks. See on puude eemaldatav (tree‑shakeable), mis tähendab, et sisestad ainult need funktsioonid, mida tegelikult kasutad, hoides paketi suuruse minimaalset. Teek toetab üle 200 funktsiooni, mis hõlmavad kõike alates vormindamisest ja parsest kuni võrdlemise, manipuleerimise ja kuupäevade lokaliseerimiseni.

Miks kasutada date-fns mänguväljakut?

Kuupäevadega töötamine JavaScriptis võib olla keeruline – ajavööndid, vormindusmallid ja kuupäevade aritmeetika viivad tihti ootamatute tulemusteni. Mänguväljak võimaldab sul date-fns funktsioone reaalajas katsetada, näha kohest väljundit ja õppida API-d ilma täismahus projekti seadistamata. See on ideaalne vormindusstringide testimiseks, kuupäevade arvutuste silumiseks või kiireks prototüüpimiseks enne nende integreerimist oma rakendusse.

Tööriista kirjeldus

date-fns Playground on interaktiivne kodeerimiskeskkond, mis võimaldab sul kirjutada ja käivitada JavaScripti koodi koos täieliku date-fns teegiga eellaaditud. Kogu date-fns teek on saadaval dateFns objekti kaudu, mis annab ligipääsu kõigile 200+ funktsioonile. Kood käivitatakse automaatselt, kui kirjutad (debounce‑iga), ning kõik console.log, console.warn ja console.error väljundid ilmuvad sisseehitatud terminalis otse redaktori all. See teeb sellest ideaalse vahendi date-fns õppimiseks, kuupäevade operatsioonide testimiseks ja erinevate vormindusvalikute katsetamiseks.

Näited

Vorminda praegune kuupäev:

const now = new Date();
console.log(dateFns.format(now, "MMMM do, yyyy"));
// Output: December 30th, 2025

Arvuta päevade arv kahe kuupäeva vahel:

const start = new Date(2025, 0, 1);
const end = new Date(2025, 11, 31);
console.log(dateFns.differenceInDays(end, start) + " days");
// Output: 364 days

Lisa kuupäevale aega:

const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("Next week:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("Next month:", dateFns.format(nextMonth, "yyyy-MM-dd"));

Kontrolli, kas kuupäev on minevikus või tulevikus:

const date = new Date(2024, 5, 15);
console.log("Is past?", dateFns.isPast(date));
console.log("Is future?", dateFns.isFuture(date));

Parsida kuupäeva string:

const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// Output: Thursday, December 25th, 2025

Funktsioonid

  • Täielik date-fns teek: Ligipääs kõigile 200+ date-fns funktsioonidele läbi dateFns objekti
  • Reaalajas koodi käivitamine: Kood käivitatakse automaatselt, kui kirjutad, nutika debouncing‑iga
  • Sisseehitatud terminal: Vaata konsooli väljundit kohe, ilma brauseri arendustööriistadeta
  • Süntaksi esiletõstmine: JavaScripti süntaksi esiletõstmine parema loetavuse huvides
  • Vigade käsitlemine: Käitusaegsed vead kuvatakse selgelt terminali väljundis

Kasutusjuhtumid

  • date-fns õppimine: Katseta erinevaid funktsioone ja näe tulemusi kohe, ilma projekti seadistamiseta
  • Kuupäeva vormingu testimine: Proovi erinevaid vormindusstringe, et leida täpselt vajalik väljundimuster
  • Kuupäeva arvutuste prototüüpimine: Testi keerukat kuupäevade aritmeetikat, nagu tööpäevade lisamine, intervallide leidmine või kuupäevade võrdlemine
  • Kuupäeva loogika silumine: Isoleeri ja testi kuupäevadega seotud koodilõike oma projektidest
  • Kiired kuupäeva konversioonid: Konverteeri kuupäevavormingute vahel või arvuta ajavahede väärtusi koheselt

Levinumad date-fns funktsioonid

Funktsioon Kirjeldus Näide
format Vorminda kuupäev stringiks dateFns.format(date, "yyyy-MM-dd")
parse Parsida string kuupäevaks dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date())
addDays Lisa päevad kuupäevale dateFns.addDays(date, 7)
subMonths Lahuta kuud kuupäevast dateFns.subMonths(date, 3)
differenceInDays Saada päevade arv kuupäevade vahel dateFns.differenceInDays(dateA, dateB)
isAfter Kontrolli, kas kuupäev on pärast teist dateFns.isAfter(dateA, dateB)
isBefore Kontrolli, kas kuupäev on enne teist dateFns.isBefore(dateA, dateB)
startOfMonth Saada kuu esimene päev dateFns.startOfMonth(date)
endOfYear Saada aasta viimane hetk dateFns.endOfYear(date)
formatDistance Inimloetav ajavahe dateFns.formatDistance(dateA, dateB)

Vormindustokenite viide

Token Kirjeldus Näide
yyyy 4‑kohaline aasta 2025
MM 2‑kohaline kuu 01‑12
MMMM Kuu täispikk nimi January
dd 2‑kohaline päev 01‑31
do Päev järgarvuga 1st, 2nd, 3rd
EEEE Nädalapäeva täispikk nimi Monday
EEE Nädalapäeva lühend Mon
HH 24‑tunnine kellaaeg 00‑23
hh 12‑tunnine kellaaeg 01‑12
mm Minutid 00‑59
ss Sekundid 00‑59
a AM/PM AM, PM