Moment.js: Shpjegim i plotë dhe shembuj praktikë të bibliotekës së datave

Përditësimi i fundit: 28 de julio de 2025
  • Moment.js thjeshton menaxhimin e datës dhe kohës në JavaScript me një API të pastër dhe të fuqishëm.
  • Ju lejon të analizoni, manipuloni, validoni dhe shfaqni datat në çdo format dhe zonë kohore.
  • Integrohet lehtësisht në projekte dhe është i pajtueshëm me shtojca dhe librari të jashtme si IronPDF.

moment.js

Puna me datat dhe orët në JavaScript mund të jetë një sfidë e vërtetë për zhvilluesit e uebit . Për fat të mirë, mjete si Moment.js e thjeshtojnë ndjeshëm këtë proces, duke e bërë shumë më të lehtë gjithçka, nga formatimi bazë i datës deri te operacionet komplekse të manipulimit dhe validimit. Nëse ndonjëherë jeni ndjerë të frustruar duke u përpjekur të konvertoni, krahasoni ose shfaqni datat saktë në projektet tuaja, Moment.js ndoshta ka qenë një nga miqtë tuaj më të mirë, ose të paktën duhet ta merrni në konsideratë përdorimin e tij.

Në këtë artikull, do t'ju tregoj gjithçka që duhet të dini rreth Moment.js : nga funksionet e tij kryesore dhe truket më pak të njohura, deri te shembujt praktikë dhe integrimi i tij me librari të tjera, duke përfshirë një shpjegim të qartë të sintaksës së tij dhe detyrave që mund të kryeni me të. Gjithashtu do të shqyrtojmë kufizimet e tij, përditësimet e fundit dhe alternativat që keni nëse po kërkoni diçka më moderne.

Çfarë është Moment.js dhe pse është bërë kaq popullor?

Moment.js është një bibliotekë JavaScript e projektuar për ta bërë punën me datat dhe orët të lehtë . Ju lejon të krijoni, analizoni, manipuloni dhe shfaqni datat në pothuajse çdo format të imagjinueshëm me një sintaksë të thjeshtë por të fuqishme. Për vite me radhë, kjo bibliotekë ka qenë zgjidhja kryesore e komunitetit për kapërcimin e kufizimeve të objektit nativ Date() të JavaScript.

Bërthama e Moment.js sillet rreth objektit `moment()` , i cili mund të ndërtojë data nga pothuajse çdo të dhënë e vlefshme: vargje teksti, objekte date, pulla kohore ose direkt me argumente numerike. Kjo e bën atë jashtëzakonisht fleksibël dhe të dobishëm në të gjitha llojet e projekteve, nga skripte të vogla deri te aplikacionet e ndërmarrjeve që menaxhojnë zonat kohore ndërkombëtare ose të dhënat historike.

Çfarë e ka bërë kaq të suksesshëm? Besueshmëria, lehtësia e përdorimit dhe shumëllojshmëria e mjeteve dhe shtojcave shoqëruese . Edhe kur projekti ka hyrë në modalitetin e mirëmbajtjes, Moment.js mban një bazë të madhe përdoruesish dhe dokumentacion të gjerë , duke përforcuar pozicionin e tij si një zgjidhje kryesore e të dhënave në JavaScript dhe Node.js.

  Gjuha e programimit të nivelit të ulët: 7 çelësat për zotërim

Karakteristikat dhe përfitimet kryesore të Moment.js

  • API e thjeshtë dhe intuitiveNjë nga pikat e forta më të mëdha të Moment.js është sintaksa e tij e qartë. Mund të kryeni operacione të thjeshta, të tilla si marrja e datës aktuale ose konvertimi i një vargu në një format specifik, ose llogaritje dhe validime komplekse vetëm në disa rreshta.
  • Parsing dhe formatim fleksibëlAnalizimi i vargjeve të datave të pothuajse çdo formati dhe konvertimi i tyre në rezultatin e dëshiruar nuk ka qenë kurrë më i lehtë. Moment.js e bën të shpejtë dhe të lehtë formatimin e datave në prezantime të personalizuara..
  • Manipulimi i datësShtimi ose zbritja e ditëve, muajve, viteve, javëve ose çdo njësie tjetër kohore është po aq e thjeshtë sa përdorimi i metodave shtoj () y zbrit()Kjo është shumë e dobishme kur duhet të punoni me data relative, data të caktuara ose afate kohore që ndryshojnë në mënyrë dinamike.
  • Validimi i fuqishëmNëse duhet të kontrolloni nëse një datë është e vlefshme ose ekziston (për shembull, 30 shkurt), Moment.js ua bën të lehtë. Metoda eshte e vlefshme() Është në gjendje të zbulojë gabime të vogla në formatin ose logjikën e datave.
  • Mbështetje për zonat kohore dhe lokaliziminFaleminderit për plugin-in tuaj momenti-zona kohoreËshtë shumë e lehtë të konvertosh datat midis zonave të ndryshme kohore. Gjithashtu mund të shfaqësh data të përshtatura sipas gjuhës së përdoruesit dhe konventave rajonale, gjë që është thelbësore në aplikacionet globale.
  • Ekosistemi i shtojcavePërveç bibliotekës kryesore, ekziston një ekosistem plugin-esh për të zgjeruar funksionalitetin e saj (kalendar, përputhshmëri me framework-e të tjera, formate ekzotike...).

Si të filloni me Moment.js në projektin tuaj

Instalimi është shumë i thjeshtë . Mund ta përfshish Moment.js në HTML-në tënde me një rresht të vetëm:

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

Nëse po punoni me Node.js ose një mjedis modern zhvillimi, është e zakonshme ta instaloni atë duke përdorur npm ose yarn:

npm install moment

Pasi të keni mbaruar këtë, mund të importoni Moment.js sipas sintaksës që përdorni:

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

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

Krijimi i datave: mënyra të ndryshme dhe shembuj praktikë

Krijo datat lehtësisht

Për të marrë datën dhe orën aktuale, thjesht përdor moment():

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

Ju mund të ndërtoni një datë specifike duke kaluar argumente:

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

Mund të filloni gjithashtu nga një varg dhe format i caktuar, madje edhe në modalitetin strikt:

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

A keni një objekt Date native?

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

Formatimi dhe shfaqja e datave

Moment.js ju lejon të shfaqni datat në çdo format të imagjinueshëm . Për shembull, për të shfaqur datën aktuale si ditë/muaj/vit:

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

Nëse dëshironi një zinxhir më të humanizuar, mund të përdorni:

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

Disa shenja të dobishme për formatim :

  • YYYY: vit me 4 shifra
  • MM: imja
  • DD: dita e muajit
  • hh o HH: koha (formati 12 orë ose 24 orë)
  • mm: minuta
  • ss: sekonda
  • a: paradite/pasdite
  Gjuha e programimit Rust: performanca, siguria dhe ekosistemi

Për shembull, për të shfaqur vetëm kohën:

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

Formatim i avancuar me tokena dhe mbështetje rajonale

Moment.js mbështet formate dhe përkthime të shumta të lokalizuara . Është e mundur të ndërroni gjuhët menjëherë për të shfaqur emrat e muajve dhe të ditëve në një gjuhë tjetër.

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

Manipulimi i datës: mbledhja, zbritja dhe krahasimi

Puna me data relative është një nga pikat e forta të Moment.js.

  • Shtoni ditë, muaj ose vite:
    moment().add(3, 'days').format('DD/MM/YYYY');
  • Zbrit njësitë:
    moment().subtract(2, 'months').format('DD/MM/YYYY');
  • Fillimi dhe mbarimi i periudhave:
    moment().startOf('month').format('DD/MM/YYYY'); // Primer día del mes
    moment().endOf('month').format('DD/MM/YYYY');   // Último día del mes

Validoni datat dhe zbuloni gabimet

Para se të operoni me datat, është thelbësore të verifikoni nëse ato janë të sakta:

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

Kjo parandalon gabime të papritura në aplikacionet që marrin data nga përdoruesi.

Krahasimi i datave: kontrolloni nëse një datë është midis të tjerave

Moment.js përfshin disa metoda për krahasimin e datave:

  • ështëPara()Kontrollon nëse një datë është para një tjetre.
  • isPas ()Kontrollon nëse një datë është më e vonshme.
  • ështëMidis()Tregon nëse një datë është midis dy datave të dhëna.
let hoy = moment();
let ayer = moment().subtract(1, 'days');
console.log(hoy.isAfter(ayer)); // true

Trajtimi i zonave kohore dhe datave ndërkombëtare

Kur punoni me përdorues në pjesë të ndryshme të botës, zonat kohore mund të jenë një dhimbje koke e vërtetë . Me shtojcën moment-timezone , mund të konvertoni lehtësisht datat midis rajoneve.

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"

Përveç kësaj, Moment.js është në gjendje të shfaqë datat e përshtatura sipas cilësimeve rajonale të përdoruesit , duke shfaqur emrat e muajve dhe ditëve të përkthyera saktë.

Shembuj përdorimi të çelësave dhe këshilla të avancuara

Gjeni ndryshimet midis datave

Mund të llogaritni kohën e kaluar midis dy datave në njësi të ndryshme:

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

Datat relative dhe kohët njerëzore

Moment.js është shumë i mirë për shfaqjen e mesazheve si "3 ditë më parë" ose "pas 5 orësh":

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

Kalendari njerëzor

Funksioni calendar () shfaq datat relative si "dje në orën 17:00", "nesër në orën 9:00", duke e bërë atë shumë të përdorshëm për aplikacionet e kalendarit.

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

Mbështetje për kërcimet vjetore dhe ditët e veçanta

A doni të dini nëse një vit është vit i brishtë?

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

Metoda isLeapYear() ju jep përgjigjen direkt.

  10 Llojet e të Dhënave në Python

Përshtatje e avancuar: formate, tokena dhe analizim i rreptë

Moment.js ju lejon të punoni me vargje dhe tokena të personalizuara për të krijuar ose lexuar data në formate të panumërta . Për më tepër, modaliteti strikt kërkon përputhje të sakta, duke parandaluar gabime të vogla dhe surpriza të padëshiruara.

Për shembull, për të analizuar një datë në formatin "ditë/muaj/vit":

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

Lista e tokenëve të zakonshëm dhe shembujve

  • Vit: YYYY (2024), YY (24), Y (-500)
  • Muaj: MM (01 – 12), MMM (Janar), MMMM (Janar)
  • Dia: DD (01 – 31), C (1 – 31)
  • Hora: HH (00 – 23), hh (01 – 12), mm (minuta), ss (sekonda)
  • Zona kohore: Z, ZZ

Këto tokena mund të kombinohen për të krijuar rezultate plotësisht të personalizuara. Shihni dokumentacionin për listën e plotë dhe rastet e veçanta.