Moment.js: Pilnīgs datumu bibliotēkas skaidrojums un praktiski piemēri

Pēdējā atjaunošana: Jūlijs 28 2025
  • Moment.js vienkāršo datuma un laika pārvaldību JavaScript valodā, izmantojot tīru un jaudīgu API.
  • Ļauj analizēt, manipulēt, validēt un attēlot datumus jebkurā formātā un laika joslā.
  • Tas viegli integrējas projektos un ir saderīgs ar ārējiem spraudņiem un bibliotēkām, piemēram, IronPDF.

moment.js

Darbs ar datumiem un laikiem JavaScript valodā tīmekļa izstrādātājiem var būt īsts izaicinājums . Par laimi, tādi rīki kā Moment.js ievērojami vienkāršo šo procesu, padarot visu, sākot no pamata datuma formatēšanas līdz sarežģītām manipulācijas un validācijas darbībām, daudz vienkāršāku. Ja kādreiz esat juties neapmierināts, mēģinot pareizi konvertēt, salīdzināt vai attēlot datumus savos projektos, Moment.js, iespējams, ir bijis viens no jūsu labākajiem draugiem vai vismaz jums vajadzētu apsvērt tā izmantošanu.

Šajā rakstā es pastāstīšu visu, kas jums jāzina par Moment.js : sākot ar tā galvenajām funkcijām un mazāk zināmiem trikiem, beidzot ar praktiskiem piemēriem un integrāciju ar citām bibliotēkām, tostarp skaidru sintakses skaidrojumu un uzdevumiem, ko ar to var veikt. Mēs aplūkosim arī tā ierobežojumus, jaunākos atjauninājumus un alternatīvas, ja meklējat kaut ko modernāku.

Kas ir Moment.js un kāpēc tas ir kļuvis tik populārs?

Moment.js ir JavaScript bibliotēka, kas izstrādāta, lai atvieglotu darbu ar datumiem un laikiem . Tā ļauj izveidot, parsēt, manipulēt un attēlot datumus praktiski jebkurā iedomājamā formātā, izmantojot vienkāršu, bet jaudīgu sintaksi. Gadiem ilgi šī bibliotēka ir bijusi kopienas galvenais risinājums, lai pārvarētu JavaScript dzimtā Date() objekta ierobežojumus.

Moment.js pamatā ir `moment()` objekts , kas var veidot datumus no gandrīz jebkuras derīgas ievades: teksta virknēm, datuma objektiem, laika zīmogiem vai tieši ar skaitliskiem argumentiem. Tas padara to ārkārtīgi elastīgu un noderīgu visu veidu projektos, sākot no maziem skriptiem līdz uzņēmumu lietojumprogrammām, kas pārvalda starptautiskās laika joslas vai vēsturiskus ierakstus.

Kas to ir padarījis tik veiksmīgu? Tā uzticamība, lietošanas ērtums un pievienoto rīku un spraudņu daudzveidība . Pat tad, kad projekts ir pārgājis apkopes režīmā, Moment.js uztur lielu lietotāju bāzi un plašu dokumentāciju , nostiprinot savu pozīciju kā vadošais datu risinājumu JavaScript un Node.js.

  Atklājiet Qt Creator IDE: visspēcīgākā vide starpplatformu lietotņu izveidei

Moment.js galvenās iezīmes un priekšrocības

  • Vienkārša un intuitīva APIViena no Moment.js lielākajām priekšrocībām ir tās skaidrā sintakse. Vienkāršas darbības, piemēram, pašreizējā datuma iegūšana vai virknes konvertēšana noteiktā formātā, vai sarežģīti aprēķini un validācijas var veikt tikai dažās rindās.
  • Elastīga parsēšana un formatēšanaGandrīz jebkura formāta datumu virkņu parsēšana un konvertēšana vēlamajā izvadē nekad nav bijusi tik vienkārša. Moment.js padara datumu formatēšanu pielāgotās prezentācijās ātru un vienkāršu..
  • Datuma manipulācijaDienu, mēnešu, gadu, nedēļu vai jebkuras citas laika vienības saskaitīšana vai atņemšana ir tikpat vienkārša kā metožu izmantošana pievienot () y atņemt()Tas ir ļoti noderīgi, ja ir jāstrādā ar relatīviem datumiem, izpildes datumiem vai laika periodiem, kas mainās dinamiski.
  • Stabila validācijaJa jums ir jāpārbauda, vai datums ir derīgs vai pastāv (piemēram, 30. februāris), Moment.js to atvieglo. Metode ir derīgs() Tas spēj atklāt smalkas kļūdas datumu formātā vai loģikā.
  • Atbalsts laika joslām un lokalizācijaiPaldies jūsu spraudnim mirklis-laika joslaDatumu konvertēšana starp dažādām laika joslām ir ļoti vienkārša. Varat arī attēlot datumus, kas pielāgoti lietotāja valodai un reģionālajām konvencijām, kas ir svarīgi globālās lietojumprogrammās.
  • Spraudņu ekosistēmaPapildus galvenajai bibliotēkai ir pieejama arī spraudņu ekosistēma, lai paplašinātu tās funkcionalitāti (kalendārs, saderība ar citiem ietvariem, eksotiski formāti...).

Kā sākt darbu ar Moment.js savā projektā

Instalēšana ir ļoti vienkārša . Moment.js var iekļaut HTML kodā ar vienu rindiņu:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

Ja strādājat ar Node.js vai modernu izstrādes vidi, to parasti instalē, izmantojot npm vai yarn:

npm install moment

Kad tas ir izdarīts, varat importēt Moment.js atbilstoši izmantotajai sintaksi:

// Versión CommonJS
var moment = require('moment');
moment().format();

// ES6
import moment from 'moment';
moment().format();

Datumu izveide: dažādi veidi un praktiski piemēri

Izveidojiet datumus viegli

Lai iegūtu pašreizējo datumu un laiku, vienkārši izmantojiet moment():

console.log(moment()); // Devuelve la fecha actual en formato ISO8601

Jūs varat izveidot konkrētu datumu, nododot argumentus:

moment("2022-10-14"); // Crea el 14 de octubre de 2022

Varat arī sākt no dotās virknes un formāta, pat stingrajā režīmā:

moment("25/12/1995", "DD/MM/YYYY", true); // Analiza y comprueba el formato

Vai jums ir iebūvēts datuma objekts?

const fechaJS = new Date();
const miFecha = moment(fechaJS);

Datumu formatēšana un attēlošana

Moment.js ļauj attēlot datumus jebkurā iedomājamā formātā . Piemēram, lai attēlotu pašreizējo datumu kā diena/mēnesis/gads:

moment().format('DD/MM/YYYY');

Ja vēlaties cilvēcīgāku ķēdi, varat izmantot:

moment().format('MMMM Do YYYY, h:mm:ss a'); // Ejemplo: "marzo 8º 2024, 3:21:10 pm"

Daži noderīgi formatēšanas marķieri :

  • YYYY4 ciparu gads
  • MMmēnesis
  • DDmēneša diena
  • hh o HHlaiks (12 stundu vai 24 stundu formātā)
  • mmminūtes
  • sssekundes
  • a: priekšpusdienā/pēcpusdienā
  Rust programmēšanas valoda: veiktspēja, drošība un ekosistēma

Piemēram, lai parādītu tikai laiku:

moment().format('HH:mm:ss');

Uzlabota formatēšana ar žetoniem un reģionālo atbalstu

Moment.js atbalsta vairākus lokalizētus formātus un tulkojumus . Ir iespējams acumirklī pārslēgt valodas, lai mēnešu un dienu nosaukumus parādītu citā valodā.

moment.locale('es'); // Cambia a español
document.write(moment().format('LLLL'));
// Ejemplo: martes, 8 de marzo de 2024 15:21

Datumu manipulācija: saskaitīšana, atņemšana un salīdzināšana

Darbs ar relatīviem datumiem ir viena no Moment.js stiprajām pusēm.

  • Pievienojiet dienas, mēnešus vai gadus:
    moment().add(3, 'days').format('DD/MM/YYYY');
  • Atņemiet vienības:
    moment().subtract(2, 'months').format('DD/MM/YYYY');
  • Periodu sākums un beigas:
    moment().startOf('month').format('DD/MM/YYYY'); // Primer día del mes
    moment().endOf('month').format('DD/MM/YYYY');   // Último día del mes

Datumu validēšana un kļūdu atklāšana

Pirms darba ar datumiem ir svarīgi pārliecināties, ka tie ir pareizi:

moment('2024-02-30', 'YYYY-MM-DD').isValid(); // false, el 30 de febrero no existe

Tas novērš negaidītas kļūdas lietojumprogrammās, kas saņem datumus no lietotāja.

Datumu salīdzinājums: pārbaudiet, vai datums ir starp citiem

Moment.js ietver vairākas datumu salīdzināšanas metodes:

  • irPirms(): Pārbauda, vai viens datums ir pirms cita.
  • irPēc(): Pārbauda, vai datums ir vēlāks.
  • irStarp(): Norāda, vai datums ir starp diviem dotajiem datumiem.
let hoy = moment();
let ayer = moment().subtract(1, 'days');
console.log(hoy.isAfter(ayer)); // true

Laika joslu un starptautisko datumu apstrāde

Strādājot ar lietotājiem dažādās pasaules malās, laika joslas var sagādāt īstas galvassāpes . Ar moment-timezone spraudni varat viegli konvertēt datumus starp reģioniem.

const moment = require('moment-timezone');
const fechaUTC = moment('2024-05-25');
const fechaNY = fechaUTC.tz('America/New_York').format('YYYY-MM-DD HH:mm:ss');
console.log(fechaNY);
// Ejemplo: "2024-05-24 20:00:00"

Turklāt Moment.js spēj attēlot datumus, kas pielāgoti lietotāja reģionālajiem iestatījumiem , parādot pareizi tulkotus mēnešu un dienu nosaukumus.

Galvenie lietošanas piemēri un padomi papildu informācijai

Iegūstiet atšķirības starp datumiem

Laiku starp diviem datumiem var aprēķināt dažādās mērvienībās:

let inicio = moment('2024-01-01');
let fin = moment('2024-03-08');
let dias = fin.diff(inicio, 'days'); // Devuelve el número de días entre ambas

Relatīvie datumi un cilvēku laiki

Moment.js ir lieliski piemērots tādu ziņojumu rādīšanai kā "pirms 3 dienām" vai "pēc 5 stundām":

moment().subtract(3, 'days').fromNow(); // "hace 3 días"
moment().add(2, 'hours').fromNow();    // "en 2 horas"

Cilvēka kalendārs

Funkcija calendar () parāda relatīvus datumus, piemēram, "vakar plkst. 17:00", "rīt plkst. 9:00", padarot to ļoti ērti lietojamu kalendāra lietotnēs.

moment().subtract(1, 'days').calendar(); // "Ayer a las..."
moment().add(3, 'days').calendar();     // "Próximo martes a las..."

Atbalsts gada pārejām un īpašām dienām

Vai vēlaties uzzināt, vai gads ir garais gads?

moment([2024]).isLeapYear(); // true

isLeapYear() metode sniedz atbildi tieši.

  2. sadaļa: Python programmēšanas pamati

Paplašināta pielāgošana: formāti, žetoni un stingra parsēšana

Moment.js ļauj strādāt ar pielāgotām virknēm un žetoniem, lai izveidotu vai lasītu datumus neskaitāmos formātos . Turklāt stingrajam režīmam ir nepieciešamas precīzas atbilstības, novēršot smalkas kļūdas un nevēlamus pārsteigumus.

Piemēram, lai parsētu datumu formātā "diena/mēnesis/gads":

moment('12/03/2023', 'DD/MM/YYYY', true);

Bieži sastopamo žetonu un piemēru saraksts

  • Gads: GGGG (2024), GG (24), G (-500)
  • MēnesisMM (01–12), MMM (janvāris), MMMM (janvāris)
  • DienaDD (01.–31.), C (1.–31.)
  • Laiks: HH (00–23), hh (01–12), mm (minūtes), ss (sekundes)
  • Laika joslaZ, ZZ

Šos marķierus var kombinēt, lai izveidotu pilnībā pielāgotus rezultātus. Pilnu sarakstu un īpašos gadījumus skatiet dokumentācijā.