Hva er date-fns?

date-fns er et moderne JavaScript‑datoutilbibliotek som gir omfattende, konsistente og pålitelige verktøy for å arbeide med datoer i JavaScript. I motsetning til det innebygde JavaScript‑Date‑objektet, som har mange særtrekk og inkonsistenser, tilbyr date-fns en modulær, funksjonell tilnærming til datomanipulering. Biblioteket er tree‑shakeable, noe som betyr at du kun inkluderer funksjonene du faktisk bruker, og holder pakkestørrelsen minimal. Biblioteket støtter over 200 funksjoner som dekker alt fra formatering og parsing til sammenligning, manipulering og lokalisering av datoer.

Hvorfor bruke en date-fns‑lekplat?

Å jobbe med datoer i JavaScript kan være utfordrende – tidssoner, formateringsmønstre og dateregning fører ofte til uventede resultater. Et lekplat-miljø lar deg eksperimentere med date-fns‑funksjoner i sanntid, se umiddelbare resultater og lære API‑et uten å sette opp et fullt prosjekt. Det er perfekt for å teste formateringsstrenger, feilsøke dateregninger eller raskt prototype datologikk før du integrerer den i applikasjonen din.

Verktøysbeskrivelse

date-fns Playground er et interaktivt kode‑miljø som lar deg skrive og kjøre JavaScript‑kode med hele date-fns‑biblioteket forhåndslastet. Hele date-fns‑biblioteket er tilgjengelig via dateFns‑objektet, som gir deg tilgang til alle 200+ funksjoner. Koden kjøres automatisk mens du skriver (med debouncing), og alle console.log, console.warn og console.error‑utdata vises i den innebygde terminalen under editoren. Dette gjør det ideelt for å lære date-fns, teste dato‑operasjoner og eksperimentere med ulike formateringsalternativer.

Eksempler

Formater dagens dato:

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

Beregn antall dager mellom to datoer:

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

Legg til tid på en dato:

const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("Neste uke:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("Neste måned:", dateFns.format(nextMonth, "yyyy-MM-dd"));

Sjekk om en dato er i fortiden eller fremtiden:

const date = new Date(2024, 5, 15);
console.log("Er fortid?", dateFns.isPast(date));
console.log("Er fremtid?", dateFns.isFuture(date));

Parse en datostreng:

const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// Utdata: torsdag, 25. desember 2025

Funksjoner

  • Fullt date-fns‑bibliotek: Tilgang til alle 200+ date-fns‑funksjoner via dateFns‑objektet
  • Live kodeutførelse: Koden kjøres automatisk mens du skriver med smart debouncing
  • Innebygd terminal: Vis konsollutdata umiddelbart uten nettleser‑dev‑verktøy
  • Syntaksutheving: JavaScript‑syntaksutheving for bedre kode­lesbarhet
  • Feilhåndtering: Kjøretidsfeil vises tydelig i terminalutdataene

Bruksområder

  • Lære date-fns: Eksperimenter med ulike funksjoner og se resultater umiddelbart uten prosjektoppsett
  • Teste datoformatering: Prøv forskjellige formatstrenger for å finne nøyaktig ønsket utdata‑mønster
  • Prototype dateregning: Test kompleks dateregning som å legge til arbeidsdager, finne intervaller eller sammenligne datoer
  • Feilsøke datologikk: Isoler og test dato‑relatert kode fra prosjektene dine
  • Raske datakonverteringer: Konverter mellom datoformater eller beregn tidsforskjeller på stående fot

Vanlige date-fns‑funksjoner

Funksjon Beskrivelse Eksempel
format Formater en dato til en streng dateFns.format(date, "yyyy-MM-dd")
parse Parse en streng til en dato dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date())
addDays Legg til dager på en dato dateFns.addDays(date, 7)
subMonths Trekk fra måneder fra en dato dateFns.subMonths(date, 3)
differenceInDays Hent antall dager mellom datoer dateFns.differenceInDays(dateA, dateB)
isAfter Sjekk om en dato er etter en annen dateFns.isAfter(dateA, dateB)
isBefore Sjekk om en dato er før en annen dateFns.isBefore(dateA, dateB)
startOfMonth Hent første dag i måneden dateFns.startOfMonth(date)
endOfYear Hent siste øyeblikk i året dateFns.endOfYear(date)
formatDistance Menneskelig lesbar tidsforskjell dateFns.formatDistance(dateA, dateB)

Referanse for format‑tokens

Token Beskrivelse Eksempel
yyyy 4‑sifret år 2025
MM 2‑sifret måned 01‑12
MMMM Fullt månedsnavn januar
dd 2‑sifret dag 01‑31
do Dag med ordinal 1., 2., 3.
EEEE Fullt ukedagsnavn mandag
EEE Kort ukedag man
HH 24‑timmers time 00‑23
hh 12‑timmers time 01‑12
mm Minutter 00‑59
ss Sekunder 00‑59
a AM/PM AM, PM