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

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.
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 gadsMMmēnesisDDmēneša dienahhoHHlaiks (12 stundu vai 24 stundu formātā)mmminūtessssekundesa: priekšpusdienā/pēcpusdienā
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.
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ā.