Moment.js Speelveld
Interactief speelveld om te experimenteren met de Moment.js datum- en tijd-API – formatteren, parseren en datums manipuleren met live-uitvoer
Invoer
Uitvoer
Readme
Wat is Moment.js?
Moment.js is een veelgebruikte JavaScript-bibliotheek voor het parseren, valideren, manipuleren en formatteren van datums. Voordat moderne alternatieven verschenen, was Moment.js de de facto standaard voor datumverwerking in JavaScript-toepassingen. Het biedt een nette, ketenbare API die het werken met datums intuïtief en eenvoudig maakt. Hoewel nieuwere bibliotheken zoals date-fns en Luxon bestaan, wordt Moment.js nog steeds veel gebruikt in legacy-codebases en wordt het actief onderhouden voor bugfixes. Moment.js begrijpen is essentieel voor ontwikkelaars die werken met bestaande projecten die ervan afhankelijk zijn.
Waarom een datummanipulatiebibliotheek gebruiken?
Het native Date-object van JavaScript is berucht moeilijk om mee te werken. Het vertoont inconsistente gedragingen tussen browsers, verwarrende maandindexering (0-11 in plaats van 1-12), beperkte opmaakopties en geen ingebouwde tijdzone-ondersteuning. Datum-bibliotheken zoals Moment.js lossen deze problemen op door een consistente, goed gedocumenteerde API te bieden. Ze behandelen randgevallen zoals overgangen naar zomertijd, schrikkeljaren en opmaak op basis van locale automatisch, waardoor ontwikkelaars niet zelf foutgevoelige datumlogica vanaf nul hoeven te schrijven.
Toolbeschrijving
De Moment.js Playground is een interactieve, browsergebaseerde omgeving om te experimenteren met de Moment.js-bibliotheek. Schrijf en voer JavaScript-code direct uit in de editor met volledige toegang tot Moment.js en Moment Timezone. De playground voert je code automatisch uit terwijl je typt (met debouncing) en toont alle console-uitvoer in een terminal-achtig paneel eronder. Het is perfect om Moment.js te leren, datumformatteer‑strings te testen, datumcalculaties te debuggen en tijdgerelateerde logica te prototypen zonder een ontwikkelomgeving op te zetten.
Voorbeelden
Formateer de huidige 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 PMParse verschillende datumformaten:
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)Bereken relatieve tijd:
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 agoDatumrekenkunde:
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-31Werken met duur:
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 yearVergelijk datums:
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")); // trueWerken met tijdzones:
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"));Functies
- Volledige Moment.js-bibliotheek: Toegang tot alle Moment.js-functies, inclusief parsen, formatteren, manipulatie en vergelijking
- Tijdzone-ondersteuning: Moment Timezone is vooraf geladen voor werken met tijdzones wereldwijd
- Live code‑executie: Code wordt automatisch uitgevoerd terwijl je typt met slimme debouncing
- Ingebouwde terminal: Bekijk console‑output direct zonder de ontwikkelaarstools van de browser te openen
- Syntax‑highlighting: JavaScript-syntax‑highlighting voor betere code‑leesbaarheid
- Foutafhandeling: Runtime‑fouten worden duidelijk weergegeven in de terminaloutput
Gebruikssituaties
- Moment.js leren: Experimenteer met de API en zie direct resultaten zonder projectopzet
- Format‑string testen: Probeer verschillende format‑tokens om de exacte datumoutput te krijgen die je nodig hebt
- Datumcalculatie debuggen: Test complexe datumrekenkunde voordat je deze implementeert in je applicatie
- Tijdzone‑conversies: Converteer snel tijden tussen verschillende tijdzones
- Legacy‑codeonderhoud: Test Moment.js‑codefragmenten bij het onderhouden van bestaande applicaties
Veelvoorkomende format‑tokens
| Token | Beschrijving | Voorbeeld |
|---|---|---|
YYYY |
4-cijferig jaar | 2025 |
YY |
2-cijferig jaar | 25 |
MM |
2-cijferige maand | 01-12 |
MMM |
Korte maandnaam | Jan, Feb |
MMMM |
Volledige maandnaam | January |
DD |
2-cijferige dag | 01-31 |
Do |
Dag met ordinale aanduiding | 1st, 2nd, 3rd |
dddd |
Volledige weekdagnaam | Monday |
ddd |
Korte weekdag | Mon |
HH |
Uur in 24‑uur formaat | 00-23 |
hh |
Uur in 12‑uur formaat | 01-12 |
mm |
Minuten | 00-59 |
ss |
Seconden | 00-59 |
A |
AM/PM (hoofdletters) | AM, PM |
a |
am/pm (kleine letters) | am, pm |
z |
Tijdzone‑afkorting | EST, PST |
Z |
Tijdzone‑offset | +05:00 |
Veelvoorkomende methodenreferentie
| Methode | Beschrijving | Voorbeeld |
|---|---|---|
moment() |
Maak huidig moment | moment() |
format(string) |
Formatteer naar string | moment().format("YYYY-MM-DD") |
add(n, unit) |
Voeg tijd toe | moment().add(7, "days") |
subtract(n, unit) |
Trek tijd af | moment().subtract(1, "month") |
startOf(unit) |
Begin van eenheid | moment().startOf("week") |
endOf(unit) |
Einde van eenheid | moment().endOf("month") |
fromNow() |
Relatieve tijd | moment("2025-01-01").fromNow() |
diff(moment) |
Verschil | momentA.diff(momentB, "days") |
isBefore(moment) |
Is vóór | momentA.isBefore(momentB) |
isAfter(moment) |
Is na | momentA.isAfter(momentB) |
isSame(moment, unit) |
Is gelijk | momentA.isSame(momentB, "month") |
isValid() |
Controleer geldigheid | moment("invalid").isValid() |
clone() |
Maak kopie | moment().clone() |
tz(zone) |
Converteer tijdzone | moment().tz("America/New_York") |
Tijdseenheden
Moment.js ondersteunt de volgende tijdseenheden voor add, subtract, startOf, endOf en diff‑operaties:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms