Moment.js কি?

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

কেন একটি তারিখ ম্যানিপুলেশন লাইব্রেরি ব্যবহার করবেন?

JavaScript এর নেটিভ Date অবজেক্ট কাজ করা অত্যন্ত কঠিন। এটি ব্রাউজার জুড়ে অসামঞ্জস্যপূর্ণ আচরণ, বিভ্রান্তিকর মাস ইনডেক্সিং (1-12 এর পরিবর্তে 0-11), সীমিত ফরম্যাটিং বিকল্প এবং কোন বিল্ট-ইন টাইমজোন সাপোর্ট নেই। Moment.js এর মতো তারিখ লাইব্রেরিগুলি একটি সামঞ্জস্যপূর্ণ, ভালভাবে ডকুমেন্টেড API প্রদান করে এই সমস্যাগুলি সমাধান করে। তারা ডেলাইট সেভিং টাইম ট্রানজিশন, লিপ বছর এবং লোকেল-নির্দিষ্ট ফরম্যাটিং এর মতো এজ কেসগুলি স্বয়ংক্রিয়ভাবে পরিচালনা করে, ডেভেলপারদের স্ক্র্যাচ থেকে ত্রুটি-প্রবণ তারিখ লজিক লেখা থেকে রক্ষা করে।

টুল বর্ণনা

Moment.js Playground হল Moment.js লাইব্রেরির সাথে পরীক্ষা-নিরীক্ষার জন্য একটি ইন্টারঅ্যাক্টিভ ব্রাউজার-ভিত্তিক পরিবেশ। এডিটরে সরাসরি JavaScript কোড লিখুন এবং সম্পাদন করুন Moment.js এবং Moment Timezone এর সম্পূর্ণ অ্যাক্সেস সহ। প্লেগ্রাউন্ড স্বয়ংক্রিয়ভাবে আপনার কোড চালায় যখন আপনি টাইপ করেন (ডিবাউন্সিং সহ) এবং নীচের একটি টার্মিনাল-স্টাইল প্যানেলে সমস্ত console আউটপুট প্রদর্শন করে। এটি Moment.js শেখার জন্য, তারিখ ফরম্যাটিং স্ট্রিং পরীক্ষা করার জন্য, তারিখ গণনা ডিবাগ করার জন্য এবং একটি ডেভেলপমেন্ট পরিবেশ সেটআপ ছাড়াই সময়-সম্পর্কিত লজিক প্রোটোটাইপ করার জন্য নিখুঁত।

উদাহরণ

বর্তমান তারিখ ফরম্যাট করুন:

const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// আউটপুট: December 30th, 2025

console.log(now.format("dddd, h:mm A"));
// আউটপুট: Monday, 3:45 PM

বিভিন্ন তারিখ ফরম্যাট পার্স করুন:

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)

আপেক্ষিক সময় গণনা করুন:

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

তারিখ গণিত:

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

সময়কাল নিয়ে কাজ করুন:

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

তারিখ তুলনা করুন:

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

টাইমজোন নিয়ে কাজ করুন:

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

বৈশিষ্ট্য

  • সম্পূর্ণ Moment.js লাইব্রেরি: পার্সিং, ফরম্যাটিং, ম্যানিপুলেশন এবং তুলনা সহ সমস্ত Moment.js ফাংশনে অ্যাক্সেস করুন
  • টাইমজোন সাপোর্ট: বিশ্বব্যাপী টাইম জোনের সাথে কাজ করার জন্য Moment Timezone প্রি-লোড করা হয়েছে
  • লাইভ কোড এক্সিকিউশন: কোড স্বয়ংক্রিয়ভাবে চলে যখন আপনি স্মার্ট ডিবাউন্সিং সহ টাইপ করেন
  • বিল্ট-ইন টার্মিনাল: ব্রাউজার ডেভ টুলস খোলা ছাড়াই তাৎক্ষণিকভাবে console আউটপুট দেখুন
  • সিনট্যাক্স হাইলাইটিং: ভাল কোড পাঠযোগ্যতার জন্য JavaScript সিনট্যাক্স হাইলাইটিং
  • ত্রুটি পরিচালনা: রানটাইম ত্রুটিগুলি টার্মিনাল আউটপুটে স্পষ্টভাবে প্রদর্শিত হয়

ব্যবহারের ক্ষেত্র

  • Moment.js শেখা: প্রকল্প সেটআপ ছাড়াই API নিয়ে পরীক্ষা করুন এবং তাৎক্ষণিকভাবে ফলাফল দেখুন
  • ফরম্যাট স্ট্রিং পরীক্ষা: আপনার প্রয়োজনীয় সঠিক তারিখ আউটপুট অর্জনের জন্য বিভিন্ন ফরম্যাট টোকেন চেষ্টা করুন
  • তারিখ গণনা ডিবাগিং: আপনার অ্যাপ্লিকেশনে বাস্তবায়নের আগে জটিল তারিখ গণিত পরীক্ষা করুন
  • টাইমজোন রূপান্তর: দ্রুত বিভিন্ন টাইম জোনের মধ্যে সময় রূপান্তর করুন
  • লিগেসি কোড রক্ষণাবেক্ষণ: বিদ্যমান অ্যাপ্লিকেশন রক্ষণাবেক্ষণ করার সময় Moment.js কোড স্নিপেট পরীক্ষা করুন

সাধারণ ফরম্যাট টোকেন

টোকেন বর্ণনা উদাহরণ
YYYY 4-অঙ্কের বছর 2025
YY 2-অঙ্কের বছর 25
MM 2-অঙ্কের মাস 01-12
MMM সংক্ষিপ্ত মাসের নাম Jan, Feb
MMMM সম্পূর্ণ মাসের নাম January
DD 2-অঙ্কের দিন 01-31
Do অর্ডিনাল সহ দিন 1st, 2nd, 3rd
dddd সম্পূর্ণ সপ্তাহের দিনের নাম Monday
ddd সংক্ষিপ্ত সপ্তাহের দিন Mon
HH 24-ঘণ্টার ঘণ্টা 00-23
hh 12-ঘণ্টার ঘণ্টা 01-12
mm মিনিট 00-59
ss সেকেন্ড 00-59
A AM/PM (বড় অক্ষর) AM, PM
a am/pm (ছোট অক্ষর) am, pm
z টাইমজোন সংক্ষিপ্তকরণ EST, PST
Z টাইমজোন অফসেট +05:00

সাধারণ পদ্ধতি রেফারেন্স

পদ্ধতি বর্ণনা উদাহরণ
moment() বর্তমান moment তৈরি করুন moment()
format(string) স্ট্রিংয়ে ফরম্যাট করুন moment().format("YYYY-MM-DD")
add(n, unit) সময় যোগ করুন moment().add(7, "days")
subtract(n, unit) সময় বিয়োগ করুন moment().subtract(1, "month")
startOf(unit) ইউনিটের শুরু moment().startOf("week")
endOf(unit) ইউনিটের শেষ moment().endOf("month")
fromNow() আপেক্ষিক সময় moment("2025-01-01").fromNow()
diff(moment) পার্থক্য momentA.diff(momentB, "days")
isBefore(moment) আগে আছে কি momentA.isBefore(momentB)
isAfter(moment) পরে আছে কি momentA.isAfter(momentB)
isSame(moment, unit) একই কি momentA.isSame(momentB, "month")
isValid() বৈধতা পরীক্ষা করুন moment("invalid").isValid()
clone() কপি তৈরি করুন moment().clone()
tz(zone) টাইমজোন রূপান্তর করুন moment().tz("America/New_York")

সময় ইউনিট

Moment.js add, subtract, startOf, endOf এবং diff অপারেশনের জন্য এই সময় ইউনিটগুলি সমর্থন করে:

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