Moment.js Lekplats
Interaktiv lekplats för att experimentera med Moment.js datum- och tids-API - formatera, pars, manipulera datum med live‑utdata
Inmatning
Utdata
Readme
Vad är Moment.js?
Moment.js är ett allmänt använt JavaScript‑bibliotek för att parsa, validera, manipulera och formatera datum. Innan moderna alternativ dök upp var Moment.js de‑facto‑standard för datumhantering i JavaScript‑applikationer. Det erbjuder ett rent, kedjebart API som gör datumarbete intuitivt och enkelt. Även om nyare bibliotek som date-fns och Luxon finns kvar, är Moment.js fortfarande kraftigt använt i äldre kodbaser och underhålls aktivt för bug‑fixar. Att förstå Moment.js är viktigt för utvecklare som arbetar med befintliga projekt som förlitar sig på det.
Varför använda ett datummanipuleringsbibliotek?
JavaScripts inbyggda Date‑objekt är notoriskt svårt att arbeta med. Det har inkonsekvent beteende mellan olika webbläsare, förvirrande månadindexering (0‑11 istället för 1‑12), begränsade formateringsalternativ och inget inbyggt stöd för tidszoner. Datumbibliotek som Moment.js löser dessa problem genom att erbjuda ett konsekvent, väl‑dokumenterat API. De hanterar kantfall som övergångar till sommartid, skottår och localespecifik formatering automatiskt, vilket sparar utvecklare från att skriva felbenägen datumlogik från grunden.
Verktygsbeskrivning
Moment.js Playground är en interaktiv webbläsarbaserad miljö för att experimentera med Moment.js‑biblioteket. Skriv och kör JavaScript‑kod direkt i editorn med full åtkomst till Moment.js och Moment Timezone. Playground‑miljön kör automatiskt din kod medan du skriver (med debouncing) och visar all konsolutdata i en terminal‑liknande panel nedanför. Den är perfekt för att lära sig Moment.js, testa datumformateringssträngar, felsöka datumberäkningar och prototypa tidsrelaterad logik utan att sätta upp en utvecklingsmiljö.
Exempel
Formatera aktuellt datum:
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 PMParsa olika datumformat:
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)Beräkna 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 agoDatumaritmetik:
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-31Arbeta med varaktigheter:
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 yearJämför datum:
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")); // trueArbeta med tidszoner:
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"));Funktioner
- Fullständigt Moment.js‑bibliotek: Tillgång till alla Moment.js‑funktioner inklusive parsning, formatering, manipulation och jämförelse
- Stöd för tidszoner: Moment Timezone är förladdat för arbete med tidszoner världen över
- Live‑kodexekvering: Koden körs automatiskt medan du skriver med smart debouncing
- Inbyggd terminal: Visa konsolutdata omedelbart utan att öppna webbläsarens utvecklingsverktyg
- Syntax‑markering: JavaScript‑syntaxmarkering för bättre kodläsbarhet
- Felhantering: Runtime‑fel visas tydligt i terminalutdata
Användningsområden
- Lära sig Moment.js: Experimentera med API‑et och se resultat omedelbart utan projektuppsättning
- Testa formatsträngar: Prova olika format‑token för att uppnå exakt datumoutput du behöver
- Felsökning av datumberäkningar: Testa komplex datumaritmetik innan implementering i din applikation
- Tidszonskonverteringar: Snabbt konvertera tider mellan olika tidszoner
- Underhåll av äldre kod: Testa Moment.js‑kodsnuttar när du underhåller befintliga applikationer
Vanliga format‑token
| Token | Beskrivning | Exempel |
|---|---|---|
YYYY |
4‑siffrigt år | 2025 |
YY |
2‑siffrigt år | 25 |
MM |
2‑siffrig månad | 01-12 |
MMM |
Kort månadsnamn | Jan, Feb |
MMMM |
Fullständigt månadsnamn | January |
DD |
2‑siffrig dag | 01-31 |
Do |
Dag med ordinal | 1st, 2nd, 3rd |
dddd |
Full veckodagsnamn | Monday |
ddd |
Kort veckodagsnamn | Mon |
HH |
24‑timmars timme | 00-23 |
hh |
12‑timmars timme | 01-12 |
mm |
Minuter | 00-59 |
ss |
Sekunder | 00-59 |
A |
AM/PM (versaler) | AM, PM |
a |
am/pm (gemener) | am, pm |
z |
Tidszonsförkortning | EST, PST |
Z |
Tidszonsförskjutning | +05:00 |
Vanliga metodreferenser
| Metod | Beskrivning | Exempel |
|---|---|---|
moment() |
Skapa nuvarande moment | moment() |
format(string) |
Formatera till sträng | moment().format("YYYY-MM-DD") |
add(n, unit) |
Lägg till tid | moment().add(7, "days") |
subtract(n, unit) |
Subtrahera tid | moment().subtract(1, "month") |
startOf(unit) |
Start på enhet | moment().startOf("week") |
endOf(unit) |
Slut på enhet | moment().endOf("month") |
fromNow() |
Relativ tid | moment("2025-01-01").fromNow() |
diff(moment) |
Skillnad | momentA.diff(momentB, "days") |
isBefore(moment) |
Är före | momentA.isBefore(momentB) |
isAfter(moment) |
Är efter | momentA.isAfter(momentB) |
isSame(moment, unit) |
Är samma | momentA.isSame(momentB, "month") |
isValid() |
Kontrollera giltighet | moment("invalid").isValid() |
clone() |
Skapa kopia | moment().clone() |
tz(zone) |
Konvertera tidszon | moment().tz("America/New_York") |
Tidsenheter
Moment.js stödjer följande tidsenheter för add, subtract, startOf, endOf och diff‑operationer:
years/y– årquarters/Q– kvartalmonths/M– månaderweeks/w– veckordays/d– dagarhours/h– timmarminutes/m– minuterseconds/s– sekundermilliseconds/ms– millisekunder