Moment.js lekeplass
Interaktiv lekeplass for å eksperimentere med Moment.js dato- og tids-API – formatere, tolke og manipulere datoer med sanntidsutdata
Inndata
Utdata
Les meg
Hva er Moment.js?
Moment.js er et mye brukt JavaScript‑bibliotek for parsing, validering, manipulering og formatering av datoer. Før moderne alternativer dukket opp, var Moment.js de‑facto‑standard for datohåndtering i JavaScript‑applikasjoner. Biblioteket tilbyr et rent, kjedelig API som gjør arbeid med datoer intuitivt og rett frem. Selv om nyere biblioteker som date-fns og Luxon finnes, er Moment.js fortsatt mye brukt i eldre kodebaser og vedlikeholdes aktivt for feilrettinger. Å forstå Moment.js er viktig for utviklere som jobber med eksisterende prosjekter som er avhengige av det.
Hvorfor bruke et datomanipuleringsbibliotek?
JavaScripts innebygde Date‑objekt er notorisk vanskelig å jobbe med. Det har inkonsistent oppførsel på tvers av nettlesere, forvirrende månedindeksering (0‑11 i stedet for 1‑12), begrensede formateringsalternativer og ingen innebygd støtte for tidssoner. Datobiblioteker som Moment.js løser disse problemene ved å tilby et konsistent, vel dokumentert API. De håndterer kanttilfeller som overgangen til sommertid, skuddår og lokalt spesifikk formatering automatisk, og sparer utviklere for å skrive feilutsatt datologikk fra bunnen av.
Verktøybeskrivelse
Moment.js Playground er et interaktivt nettleser‑basert miljø for å eksperimentere med Moment.js‑biblioteket. Skriv og kjør JavaScript‑kode direkte i editoren med full tilgang til Moment.js og Moment Timezone. Playgrounden kjører automatisk koden din mens du skriver (med debouncing) og viser all konsoll‑output i et terminal‑lignende panel under. Det er perfekt for å lære Moment.js, teste formatstrenger, feilsøke datoberegninger og prototype tidsrelatert logikk uten å sette opp et utviklingsmiljø.
Eksempler
Formater dagens dato:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Output: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// Output: Monday, 3:45 PMParse ulike datoformater:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Thursday
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0-indexed)Beregn relativ tid:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // 3 days ago
console.log(future.fromNow()); // in 14 days
console.log(past.from(future)); // 17 days agoDato‑aritmetikk:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Arbeid med varigheter:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a yearSammenlign datoer:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueArbeid med tidssoner:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Funksjoner
- Fullt Moment.js‑bibliotek: Tilgang til alle Moment.js‑funksjoner inklusiv parsing, formatering, manipulering og sammenligning
- Støtte for tidssoner: Moment Timezone er forhåndslastet for arbeid med tidssoner over hele verden
- Live‑kodeutførelse: Kode kjøres automatisk mens du skriver med smart debouncing
- Innebygd terminal: Vis konsoll‑output umiddelbart uten å åpne nettleser‑dev‑verktøy
- Syntaksutheving: JavaScript‑syntaksutheving for bedre kode‑lesbarhet
- Feilhåndtering: Kjøretidsfeil vises tydelig i terminal‑outputen
Brukstilfeller
- Lære Moment.js: Eksperimenter med API‑et og se resultater umiddelbart uten prosjektoppsett
- Teste formatstrenger: Prøv ulike format‑tokens for å oppnå nøyaktig dato‑output du trenger
- Feilsøke datoberegninger: Test kompleks dato‑aritmetikk før du implementerer i applikasjonen din
- Konvertere tidssoner: Raskt konvertere tider mellom ulike tidssoner
- Vedlikehold av legacy‑kode: Test Moment.js‑kodesnutter når du vedlikeholder eksisterende applikasjoner
Vanlige format‑tokens
| Token | Beskrivelse | Eksempel |
|---|---|---|
YYYY |
4‑sifret år | 2025 |
YY |
2‑sifret år | 25 |
MM |
2‑sifret måned | 01‑12 |
MMM |
Kort månedsnavn | Jan, Feb |
MMMM |
Fullt månedsnavn | January |
DD |
2‑sifret dag | 01‑31 |
Do |
Dag med ordinal | 1st, 2nd, 3rd |
dddd |
Fullt ukedagsnavn | Monday |
ddd |
Kort ukedag | Mon |
HH |
24‑timmers klokke | 00‑23 |
hh |
12‑timmers klokke | 01‑12 |
mm |
Minutter | 00‑59 |
ss |
Sekunder | 00‑59 |
A |
AM/PM (stor) | AM, PM |
a |
am/pm (liten) | am, pm |
z |
Tidssone‑forkortelse | EST, PST |
Z |
Tidssone‑forskyvning | +05:00 |
Vanlige metoder – referanse
| Metode | Beskrivelse | Eksempel |
|---|---|---|
moment() |
Opprett nåværende moment | moment() |
format(string) |
Formater til streng | moment().format("YYYY-MM-DD") |
add(n, unit) |
Legg til tid | moment().add(7, "days") |
subtract(n, unit) |
Trekk fra tid | moment().subtract(1, "month") |
startOf(unit) |
Start av enhet | moment().startOf("week") |
endOf(unit) |
Slutt av enhet | moment().endOf("month") |
fromNow() |
Relativ tid | moment("2025-01-01").fromNow() |
diff(moment) |
Differanse | momentA.diff(momentB, "days") |
isBefore(moment) |
Er før | momentA.isBefore(momentB) |
isAfter(moment) |
Er etter | momentA.isAfter(momentB) |
isSame(moment, unit) |
Er lik | momentA.isSame(momentB, "month") |
isValid() |
Sjekk gyldighet | moment("invalid").isValid() |
clone() |
Lag kopi | moment().clone() |
tz(zone) |
Konverter tidssone | moment().tz("America/New_York") |
Tidsenheter
Moment.js støtter følgende tidsenheter for add, subtract, startOf, endOf og diff‑operasjoner:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms