Mis on Moment.js?

Moment.js on laialdaselt kasutatav JavaScripti teek kuupäevade parsimiseks, valideerimiseks, manipuleerimiseks ja vormindamiseks. Enne kaasaegsete alternatiivide ilmumist oli Moment.js de‑facto standard kuupäevade käsitlemiseks JavaScripti rakendustes. See pakub puhtast, ahelatavast API‑st, mis muudab kuupäevadega töötamise intuitiivseks ja lihtsaks. Kuigi olemas on uuemaid teeke nagu date-fns ja Luxon, on Moment.js endiselt laialdaselt kasutusel pärandkoodibaasides ning seda hooldatakse aktiivselt veaparanduste osas. Moment.jsi mõistmine on hädavajalik arendajatele, kes töötavad olemasolevate projektidega, mis sellele tuginete.

Miks kasutada kuupäevade manipuleerimise teeki?

JavaScripti sisseehitatud Date objekt on kuulsalt keeruline. Selle käitumine on brauserite lõikes ebaühtlane, kuuindeksid on segadust tekitavad (0‑11 asemel 1‑12), vormindamisvõimalused on piiratud ning sisseehitatud ajavööndi tugi puudub. Moment.jsi‑taolised teegid lahendavad need probleemid, pakkudes ühtset, hästi dokumenteeritud API‑t. Need käsitlevad servjuhtumeid nagu suveaja üleminekud, liigaastad ja lokaadi‑spetsiifilised vormindused automaatselt, säästes arendajatel vigadele altid kuupäevaloogikat nullist kirjutada.

Tööriista kirjeldus

Moment.js Playground on interaktiivne brauseripõhine keskkond Moment.jsi teegiga katsetamiseks. Kirjutage ja käivitage JavaScripti kood otse redaktoris, omades täielikku ligipääsu Moment.jsile ja Moment Timezone’ile. Playground käivitab teie koodi automaatselt, kui kirjutate (debounce‑ga) ning kuvab kogu konsooli väljundi terminali‑stiilis paneelis allpool. See on ideaalne Moment.jsi õppimiseks, kuupäevavormingu stringide testimiseks, kuupäevaarvutuste silumiseks ja ajaga seotud loogika prototüüpimiseks ilma arenduskeskkonda seadistamata.

Näited

Vorminda praegune kuupäev:

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 PM

Parsi erinevaid kuupäevavorminguid:

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)

Arvuta suhteline aeg:

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 ago

Kuupäevaarvutused:

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-31

Töö kestustega:

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 year

Võrdle kuupäevi:

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")); // true

Tööta ajavöönditega:

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"));

Funktsioonid

  • Täielik Moment.jsi teek: Juurdepääs kõigile Moment.jsi funktsioonidele, sealhulgas parsimine, vormindamine, manipuleerimine ja võrdlemine
  • Ajavööndi tugi: Moment Timezone on eellaaditud, võimaldades töötada ajavöönditega üle kogu maailma
  • Reaalajas koodi käivitamine: Kood käivitub automaatselt, kui kirjutate, nutika debouncing‑ga
  • Sisseehitatud terminal: Vaadake konsooli väljundit kohe, ilma brauseri arendustööriistu avamata
  • Süntaksi esiletõstmine: JavaScripti süntaksi esiletõstmine parema loetavuse jaoks
  • Vigade käsitlemine: Käitusaegsed vead kuvatakse selgelt terminali väljundis

Kasutusjuhtumid

  • Moment.jsi õppimine: Katsetage API‑d ja näete tulemusi kohe, ilma projekti seadistamiseta
  • Vormingu stringide testimine: Proovige erinevaid vormingu sümboleid, et saavutada täpselt soovitud kuupäeva väljund
  • Kuupäevaarvutuste silumine: Testige keerukaid kuupäevaarvutusi enne nende rakendamist oma rakenduses
  • Ajavööndi konversioonid: Kiirelt teisendage kellaajad erinevate ajavööndite vahel
  • Pärandkoodi hooldus: Testige Moment.jsi koodilõike, kui hooldate olemasolevaid rakendusi

Levinumad vormingu sümbolid

Token Kirjeldus Näide
YYYY 4‑kohaline aasta 2025
YY 2‑kohaline aasta 25
MM 2‑kohaline kuu 01‑12
MMM Lühike kuu nimi Jan, Feb
MMMM Täielik kuu nimi January
DD 2‑kohaline päev 01‑31
Do Päev järgarvuga 1st, 2nd, 3rd
dddd Täielik nädalapäeva nimi Monday
ddd Lühike nädalapäev Mon
HH 24‑tunnine kellaaeg 00‑23
hh 12‑tunnine kellaaeg 01‑12
mm Minutid 00‑59
ss Sekundid 00‑59
A AM/PM (suurtähed) AM, PM
a am/pm (väiketähed) am, pm
z Ajavööndi lühend EST, PST
Z Ajavööndi nihe +05:00

Levinumad meetodid

Meetod Kirjeldus Näide
moment() Loo hetk praeguse ajaga moment()
format(string) Vorminda stringiks moment().format("YYYY-MM-DD")
add(n, unit) Lisa aega moment().add(7, "days")
subtract(n, unit) Lahuta aega moment().subtract(1, "month")
startOf(unit) Algus ühiku algus moment().startOf("week")
endOf(unit) Lõpp ühiku lõpp moment().endOf("month")
fromNow() Suhteline aeg moment("2025-01-01").fromNow()
diff(moment) Erinevus momentA.diff(momentB, "days")
isBefore(moment) Enne? momentA.isBefore(momentB)
isAfter(moment) Pärast? momentA.isAfter(momentB)
isSame(moment, unit) Sama? momentA.isSame(momentB, "month")
isValid() Kontrolli kehtivust moment("invalid").isValid()
clone() Loo koopia moment().clone()
tz(zone) Muuda ajavöönd moment().tz("America/New_York")

Ajaühikud

Moment.js toetab järgmisi ajaühikuid add, subtract, startOf, endOf ja diff operatsioonide jaoks:

  • years / y
  • quarters / Q
  • months / M
  • weeks / w
  • days / d
  • hours / h
  • minutes / m
  • seconds / s
  • milliseconds / ms