- Moment.js একটি পরিষ্কার এবং শক্তিশালী API এর মাধ্যমে জাভাস্ক্রিপ্টে তারিখ এবং সময় ব্যবস্থাপনাকে সহজ করে তোলে।
- আপনাকে যেকোনো ফর্ম্যাট এবং সময় অঞ্চলে তারিখ বিশ্লেষণ, পরিচালনা, যাচাইকরণ এবং প্রদর্শন করার অনুমতি দেয়।
- এটি সহজেই প্রকল্পগুলিতে সংহত হয় এবং IronPDF এর মতো বহিরাগত প্লাগইন এবং লাইব্রেরির সাথে সামঞ্জস্যপূর্ণ।

ওয়েব ডেভেলপারদের জন্য জাভাস্ক্রিপ্টে তারিখ ও সময় নিয়ে কাজ করা বেশ কঠিন হতে পারে । সৌভাগ্যবশত, Moment.js-এর মতো টুলগুলো এই প্রক্রিয়াটিকে উল্লেখযোগ্যভাবে সহজ করে তোলে, যা সাধারণ তারিখ ফরম্যাটিং থেকে শুরু করে জটিল ম্যানিপুলেশন এবং ভ্যালিডেশন অপারেশন পর্যন্ত সবকিছুকে অনেক সহজ করে দেয়। আপনি যদি আপনার প্রজেক্টে তারিখ সঠিকভাবে রূপান্তর, তুলনা বা প্রদর্শন করতে গিয়ে কখনও হতাশ হয়ে থাকেন, তাহলে Moment.js সম্ভবত আপনার অন্যতম সেরা বন্ধু হয়ে উঠেছে, অথবা অন্তত আপনার এটি ব্যবহার করার কথা বিবেচনা করা উচিত।
এই আর্টিকেলে আমি Moment.js সম্পর্কে আপনার জানার জন্য প্রয়োজনীয় সবকিছু বলব : এর প্রধান ফাংশন ও কম পরিচিত কৌশল থেকে শুরু করে ব্যবহারিক উদাহরণ এবং অন্যান্য লাইব্রেরির সাথে এর ইন্টিগ্রেশন পর্যন্ত। এর সাথে থাকবে এর সিনট্যাক্সের একটি স্পষ্ট ব্যাখ্যা এবং এটি দিয়ে আপনি কী কী কাজ করতে পারবেন তার বিবরণ। আমরা এর সীমাবদ্ধতা, সাম্প্রতিক আপডেট এবং আপনি যদি আরও আধুনিক কিছু খুঁজে থাকেন তবে আপনার জন্য কী কী বিকল্প রয়েছে, সে বিষয়েও আলোচনা করব।
Moment.js কী এবং কেন এটি এত জনপ্রিয় হয়ে উঠেছে?
Moment.js হলো একটি জাভাস্ক্রিপ্ট লাইব্রেরি যা তারিখ এবং সময় নিয়ে কাজ করাকে সহজ করার জন্য ডিজাইন করা হয়েছে । এটি আপনাকে একটি সহজ কিন্তু শক্তিশালী সিনট্যাক্সের মাধ্যমে প্রায় যেকোনো সম্ভাব্য ফরম্যাটে তারিখ তৈরি, পার্স, ম্যানিপুলেট এবং প্রদর্শন করার সুযোগ দেয়। বছরের পর বছর ধরে, এই লাইব্রেরিটি জাভাস্ক্রিপ্টের নিজস্ব Date() অবজেক্টের সীমাবদ্ধতা কাটিয়ে ওঠার জন্য কমিউনিটির প্রধান সমাধান হিসেবে কাজ করে আসছে ।
Moment.js-এর মূল ভিত্তি হলো `moment()` অবজেক্ট , যা প্রায় যেকোনো বৈধ ইনপুট—যেমন টেক্সট স্ট্রিং, Date অবজেক্ট, টাইমস্ট্যাম্প, অথবা সরাসরি সাংখ্যিক আর্গুমেন্ট—থেকে তারিখ তৈরি করতে পারে। এই বৈশিষ্ট্যটি এটিকে অত্যন্ত নমনীয় এবং সব ধরনের প্রোজেক্টে উপযোগী করে তোলে; ছোট স্ক্রিপ্ট থেকে শুরু করে আন্তর্জাতিক টাইম জোন বা ঐতিহাসিক রেকর্ড ব্যবস্থাপনার জন্য ব্যবহৃত এন্টারপ্রাইজ অ্যাপ্লিকেশন পর্যন্ত সব ক্ষেত্রেই এটি কার্যকর।
কী এটিকে এত সফল করেছে? এর নির্ভরযোগ্যতা, ব্যবহারের সহজতা এবং এর সাথে থাকা বিভিন্ন টুল ও প্লাগইন । এমনকি প্রকল্পটি রক্ষণাবেক্ষণ মোডে চলে গেলেও, Moment.js তার বিশাল ব্যবহারকারী গোষ্ঠী এবং বিস্তৃত ডকুমেন্টেশন বজায় রাখে , যা জাভাস্ক্রিপ্ট এবং Node.js-এ একটি শীর্ষস্থানীয় ডেট সলিউশন হিসেবে এর অবস্থানকে আরও শক্তিশালী করে।
Moment.js এর মূল বৈশিষ্ট্য এবং সুবিধা
- সহজ এবং স্বজ্ঞাত APIMoment.js এর সবচেয়ে বড় শক্তি হল এর স্পষ্ট বাক্য গঠন। আপনি সহজ ক্রিয়াকলাপ সম্পাদন করতে পারেন, যেমন বর্তমান তারিখ পাওয়া বা একটি স্ট্রিংকে একটি নির্দিষ্ট ফর্ম্যাটে রূপান্তর করা, অথবা মাত্র কয়েকটি লাইনে জটিল গণনা এবং যাচাইকরণ।
- নমনীয় পার্সিং এবং ফর্ম্যাটিংপ্রায় যেকোনো ফরম্যাটের তারিখের স্ট্রিং পার্স করা এবং সেগুলোকে পছন্দসই আউটপুটে রূপান্তর করা কখনও এত সহজ ছিল না। Moment.js কাস্টম উপস্থাপনাগুলিতে তারিখগুলি দ্রুত এবং ব্যথাহীনভাবে ফর্ম্যাট করার সুযোগ করে দেয়।.
- তারিখ কারসাজি: দিন, মাস, বছর, সপ্তাহ, অথবা সময়ের অন্য যেকোনো একক যোগ বা বিয়োগ করা পদ্ধতিগুলি ব্যবহারের মতোই সহজ যোগ করুন () y বিয়োগ()যখন আপনার আপেক্ষিক তারিখ, নির্ধারিত তারিখ, অথবা গতিশীলভাবে পরিবর্তিত সময়সীমা নিয়ে কাজ করার প্রয়োজন হয় তখন এটি খুবই কার্যকর।
- দৃঢ় বৈধতা: যদি আপনার কোন তারিখ বৈধ কিনা (উদাহরণস্বরূপ, ৩০শে ফেব্রুয়ারী) তা পরীক্ষা করার প্রয়োজন হয়, তাহলে Moment.js আপনার জন্য এটি সহজ করে তোলে। পদ্ধতিটি বৈধ() এটি তারিখের বিন্যাস বা যুক্তিতে সূক্ষ্ম ত্রুটি সনাক্ত করতে সক্ষম।
- সময় অঞ্চল এবং স্থানীয়করণের জন্য সমর্থন: আপনার প্লাগইনের জন্য ধন্যবাদ মুহূর্ত-সময় অঞ্চলবিভিন্ন সময় অঞ্চলের মধ্যে তারিখ রূপান্তর করা খুবই সহজ। আপনি ব্যবহারকারীর ভাষা এবং আঞ্চলিক রীতিনীতির সাথে খাপ খাইয়ে নেওয়া তারিখগুলিও প্রদর্শন করতে পারেন, যা বিশ্বব্যাপী অ্যাপ্লিকেশনগুলির ক্ষেত্রে গুরুত্বপূর্ণ।
- প্লাগইন ইকোসিস্টেম: মূল লাইব্রেরি ছাড়াও, এর কার্যকারিতা (ক্যালেন্ডার, অন্যান্য ফ্রেমওয়ার্কের সাথে সামঞ্জস্য, বহিরাগত ফর্ম্যাট...) প্রসারিত করার জন্য প্লাগইনগুলির একটি ইকোসিস্টেম রয়েছে।
আপনার প্রকল্পে Moment.js কীভাবে শুরু করবেন
ইনস্টলেশন খুবই সহজ । আপনি আপনার HTML-এ মাত্র একটি লাইনে Moment.js অন্তর্ভুক্ত করতে পারেন:
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
আপনি যদি Node.js অথবা আধুনিক ডেভেলপমেন্ট পরিবেশের সাথে কাজ করেন, তাহলে npm অথবা yarn ব্যবহার করে এটি ইনস্টল করা সাধারণ:
npm install moment
এটি হয়ে গেলে, আপনি আপনার ব্যবহৃত সিনট্যাক্স অনুসারে Moment.js আমদানি করতে পারবেন:
// Versión CommonJS
var moment = require('moment');
moment().format();
// ES6
import moment from 'moment';
moment().format();
তারিখ তৈরি: বিভিন্ন উপায় এবং ব্যবহারিক উদাহরণ
সহজেই তারিখ তৈরি করুন
বর্তমান তারিখ এবং সময় পেতে, শুধু ব্যবহার করুন moment():
console.log(moment()); // Devuelve la fecha actual en formato ISO8601
আপনি আর্গুমেন্ট পাস করে একটি নির্দিষ্ট তারিখ তৈরি করতে পারেন:
moment("2022-10-14"); // Crea el 14 de octubre de 2022
আপনি একটি নির্দিষ্ট স্ট্রিং এবং ফর্ম্যাট থেকেও শুরু করতে পারেন, এমনকি স্ট্রিক মোডেও:
moment("25/12/1995", "DD/MM/YYYY", true); // Analiza y comprueba el formato
আপনার কি কোন নেটিভ ডেট অবজেক্ট আছে?
const fechaJS = new Date();
const miFecha = moment(fechaJS);
তারিখ বিন্যাস এবং প্রদর্শন
Moment.js আপনাকে তারিখ যেকোনো সম্ভাব্য ফরম্যাটে প্রদর্শন করার সুযোগ দেয় । উদাহরণস্বরূপ, বর্তমান তারিখকে দিন/মাস/বছর হিসেবে প্রদর্শন করতে:
moment().format('DD/MM/YYYY');
যদি আপনি আরও মানবিক শৃঙ্খল চান, তাহলে আপনি ব্যবহার করতে পারেন:
moment().format('MMMM Do YYYY, h:mm:ss a'); // Ejemplo: "marzo 8º 2024, 3:21:10 pm"
ফরম্যাটিংয়ের জন্য কিছু দরকারি টোকেন :
YYYY: ৪-অঙ্কের বছরMM: মাসDD: মাসের দিনhhoHH: সময় (১২ ঘন্টা বা ২৪ ঘন্টা ফর্ম্যাট)mm: মিনিটss: সেকেন্ডa: সকাল/বিকাল
উদাহরণস্বরূপ, শুধুমাত্র সময় প্রদর্শন করতে:
moment().format('HH:mm:ss');
টোকেন এবং আঞ্চলিক সহায়তা সহ উন্নত বিন্যাসকরণ
Moment.js একাধিক স্থানীয় ফরম্যাট এবং অনুবাদ সমর্থন করে । মাস এবং দিনের নাম অন্য ভাষায় প্রদর্শন করার জন্য তাৎক্ষণিকভাবে ভাষা পরিবর্তন করা সম্ভব।
moment.locale('es'); // Cambia a español
document.write(moment().format('LLLL'));
// Ejemplo: martes, 8 de marzo de 2024 15:21
তারিখের হেরফের: যোগ, বিয়োগ এবং তুলনা
আপেক্ষিক তারিখ নিয়ে কাজ করা Moment.js-এর অন্যতম শক্তি।
- দিন, মাস বা বছর যোগ করুন:
moment().add(3, 'days').format('DD/MM/YYYY'); - একক বিয়োগ করুন:
moment().subtract(2, 'months').format('DD/MM/YYYY'); - পিরিয়ডের শুরু এবং শেষ:
moment().startOf('month').format('DD/MM/YYYY'); // Primer día del mes moment().endOf('month').format('DD/MM/YYYY'); // Último día del mes
তারিখ যাচাই করুন এবং ত্রুটি সনাক্ত করুন
তারিখগুলি ব্যবহার করার আগে, তারিখগুলি সঠিক কিনা তা যাচাই করা গুরুত্বপূর্ণ:
moment('2024-02-30', 'YYYY-MM-DD').isValid(); // false, el 30 de febrero no existe
এর ফলে ব্যবহারকারীর কাছ থেকে তারিখ গ্রহণকারী অ্যাপ্লিকেশনগুলিতে অপ্রত্যাশিত ত্রুটি প্রতিরোধ করা যায় ।
তারিখের তুলনা: অন্যদের মধ্যে একটি তারিখ আছে কিনা তা পরীক্ষা করুন
Moment.js তারিখ তুলনা করার জন্য বেশ কয়েকটি পদ্ধতি অন্তর্ভুক্ত করে:
- আগে(): একটি তারিখ অন্যটির আগে আছে কিনা তা পরীক্ষা করে।
- পরে(): তারিখটি পরে আছে কিনা তা পরীক্ষা করে।
- এর মধ্যে(): একটি তারিখ দুটি প্রদত্ত তারিখের মধ্যে কিনা তা নির্দেশ করে।
let hoy = moment();
let ayer = moment().subtract(1, 'days');
console.log(hoy.isAfter(ayer)); // true
সময় অঞ্চল এবং আন্তর্জাতিক তারিখ পরিচালনা করা
বিশ্বের বিভিন্ন প্রান্তে থাকা ব্যবহারকারীদের সাথে কাজ করার সময় টাইম জোন একটি বড় মাথাব্যথার কারণ হতে পারে । moment-timezone প্লাগইনটির সাহায্যে আপনি সহজেই বিভিন্ন অঞ্চলের মধ্যে তারিখ রূপান্তর করতে পারবেন।
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"
এছাড়াও, Moment.js ব্যবহারকারীর আঞ্চলিক সেটিংস অনুযায়ী তারিখ প্রদর্শন করতে সক্ষম , যেখানে মাস এবং দিনের নাম সঠিকভাবে অনূদিত থাকে।
মূল ব্যবহারের উদাহরণ এবং উন্নত টিপস
তারিখের মধ্যে পার্থক্য জানুন
আপনি দুটি তারিখের মধ্যে অতিবাহিত সময় বিভিন্ন ইউনিটে গণনা করতে পারেন:
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
আপেক্ষিক তারিখ এবং মানব সময়
"৩ দিন আগে" অথবা "৫ ঘন্টার মধ্যে" এর মতো বার্তা প্রদর্শনের জন্য Moment.js দুর্দান্ত:
moment().subtract(3, 'days').fromNow(); // "hace 3 días"
moment().add(2, 'hours').fromNow(); // "en 2 horas"
মানব ক্যালেন্ডার
calendar () ফাংশনটি আপেক্ষিক তারিখ প্রদর্শন করে, যেমন "গতকাল বিকাল ৫:০০ টায়", "আগামীকাল সকাল ৯:০০ টায়", যা এটিকে ক্যালেন্ডার অ্যাপের জন্য খুব ব্যবহারযোগ্য করে তোলে।
moment().subtract(1, 'days').calendar(); // "Ayer a las..."
moment().add(3, 'days').calendar(); // "Próximo martes a las..."
বছরের জাম্প এবং বিশেষ দিনগুলির জন্য সমর্থন
তুমি কি জানতে চাও যে কোন বছর কি অধিবর্ষ?
moment([2024]).isLeapYear(); // true
isLeapYear() মেথডটি আপনাকে সরাসরি উত্তর দিয়ে দেয়।
উন্নত কাস্টমাইজেশন: ফর্ম্যাট, টোকেন এবং কঠোর পার্সিং
Moment.js আপনাকে কাস্টম স্ট্রিং এবং টোকেন ব্যবহার করে অসংখ্য ফরম্যাটে তারিখ তৈরি বা পড়ার সুযোগ দেয় । এছাড়াও, এর স্ট্রিক্ট মোড হুবহু মিল নিশ্চিত করে, যা সূক্ষ্ম ভুল এবং অনাকাঙ্ক্ষিত পরিস্থিতি প্রতিরোধ করে।
উদাহরণস্বরূপ, "দিন/মাস/বছর" বিন্যাসে একটি তারিখ বিশ্লেষণ করতে:
moment('12/03/2023', 'DD/MM/YYYY', true);
সাধারণ টোকেন এবং উদাহরণের তালিকা
- বছর: YYYY (২০২৪), YY (২৪), Y (-৫০০)
- mes: এমএম (০১ - ১২), এমএমএম (জানুয়ারি), এমএমএমএম (জানুয়ারি)
- দিয়া: ডিডি (০১ – ৩১), সি (১ম – ৩১তম)
- ঘন্টা: এইচএইচ (০০ - ২৩), এইচএইচ (০১ - ১২), মিমি (মিনিট), এসএস (সেকেন্ড)
- সময় অঞ্চল: জেড, জেডজেড
এই টোকেনগুলি একত্রিত করে সম্পূর্ণ কাস্টমাইজড আউটপুট তৈরি করা যেতে পারে। সম্পূর্ণ তালিকা এবং বিশেষ ক্ষেত্রে ডকুমেন্টেশন দেখুন।