Lodash মূলত Array, Object, এবং String ম্যানিপুলেশন এর জন্য বেশ জনপ্রিয় হলেও, কিছু সময় Date এবং Time ম্যানিপুলেশন এর জন্যও ব্যবহার করা যায়। যদিও Lodash এর মধ্যে Direct Date/Time ম্যানিপুলেশন এর জন্য কোনো dedicated module নেই, তবে এর কিছু utility functions ব্যবহার করে Date এবং Time এর সাথে সম্পর্কিত কাজগুলো আরও সহজ এবং কার্যকরী করা সম্ভব। নিচে কিছু গুরুত্বপূর্ণ Lodash utility function এবং কৌশল নিয়ে আলোচনা করা হলো, যা Date এবং Time ম্যানিপুলেশনে ব্যবহার করা যেতে পারে।
১. _.now() – বর্তমান সময় (Unix timestamp) পাওয়া
_.now() ফাংশনটি বর্তমান সময়ের ইউনিক্স টাইমস্ট্যাম্প (milliseconds since 1970-01-01) ফেরত দেয়। এটি একটি সহজ পদ্ধতি বর্তমান সময় সংগ্রহ করার জন্য।
উদাহরণ:
const _ = require('lodash');
// বর্তমান সময়ের Unix timestamp পাওয়া
let currentTime = _.now();
console.log(currentTime); // Output: 1633442365673 (মিলিসেকেন্ডে)
এখানে _.now() ফাংশনটি বর্তমান সময়ের Unix timestamp প্রদান করেছে।
২. _.add() – সময় যোগ করা
_.add() ফাংশনটি একটি নির্দিষ্ট সংখ্যা যোগ করতে ব্যবহৃত হয়, যা Date এবং Time এর সাথে সম্পর্কিত হতে পারে। উদাহরণস্বরূপ, আপনি নির্দিষ্ট দিনের সাথে কিছু দিন, ঘণ্টা, মিনিট বা সেকেন্ড যোগ করতে পারেন।
উদাহরণ:
const _ = require('lodash');
// বর্তমান সময় থেকে 5 দিন যোগ করা
let currentDate = _.now();
let futureDate = _.add(currentDate, 5 * 24 * 60 * 60 * 1000); // 5 দিন পরে
console.log(futureDate); // Output: 1634047165673 (মিলিসেকেন্ডে)
এখানে _.add() ফাংশনটি বর্তমান সময়ের সাথে ৫ দিন যোগ করেছে (প্রতিটি দিন ২৪ ঘণ্টা, ৬০ মিনিট, ৬০ সেকেন্ড এবং ১০০০ মিলিসেকেন্ডের সমান)।
৩. _.floor() – মিলিসেকেন্ড স্তরে সময় রাউন্ড করা
_.floor() ফাংশনটি একটি ভ্যালুকে নির্দিষ্ট সংখ্যক ডিজিটে রাউন্ড করতে ব্যবহৃত হয়। এটি সময় বা তারিখের সাথে কাজ করার সময় সময়ের কিছু অংশ কেটে ফেলার জন্য উপকারী হতে পারে।
উদাহরণ:
const _ = require('lodash');
// বর্তমান সময়কে সেকেন্ডে রাউন্ড করা
let currentTime = _.now();
let roundedTime = _.floor(currentTime / 1000); // সেকেন্ডে রাউন্ড করা
console.log(roundedTime); // Output: 1633442365 (সেকেন্ডে)
এখানে _.floor() ফাংশনটি বর্তমান সময়কে সেকেন্ডের স্তরে রাউন্ড করেছে।
৪. _.isEqual() – দুইটি তারিখের তুলনা করা
_.isEqual() ফাংশনটি দুটি object বা value এর সমতা পরীক্ষা করতে ব্যবহৃত হয়। আপনি এটিকে দুটি তারিখের (Date) সমতা যাচাই করতে ব্যবহার করতে পারেন।
উদাহরণ:
const _ = require('lodash');
// দুটি Date objects এর তুলনা করা
let date1 = new Date('2021-10-06T12:00:00');
let date2 = new Date('2021-10-06T12:00:00');
let areEqual = _.isEqual(date1, date2);
console.log(areEqual); // Output: true
এখানে _.isEqual() ফাংশনটি দুটি Date object এর সমতা পরীক্ষা করেছে এবং true রিটার্ন করেছে কারণ দুটি তারিখ একসাথে মেলে।
৫. _.map() – সময়ের অ্যারে থেকে ডেটা ম্যানিপুলেশন
_.map() ফাংশনটি Array বা Object এর উপর একটি ফাংশন প্রয়োগ করে। যদি আপনার কাছে Date এর অ্যারে থাকে, তাহলে আপনি এই ফাংশনটি ব্যবহার করে তাদের উপর বিভিন্ন কাজ করতে পারেন, যেমন সময় যোগ বা subtract করা।
উদাহরণ:
const _ = require('lodash');
let dates = [
new Date('2021-10-01T00:00:00'),
new Date('2021-10-02T00:00:00'),
new Date('2021-10-03T00:00:00')
];
// 1 দিন যোগ করা
let newDates = _.map(dates, (date) => new Date(date.getTime() + (1 * 24 * 60 * 60 * 1000)));
console.log(newDates);
এখানে _.map() ফাংশনটি প্রতিটি Date object এর সাথে ১ দিন যোগ করেছে এবং নতুন Date গুলি তৈরি করেছে।
৬. _.differenceInDays() – দুইটি Date এর মধ্যে দিনের পার্থক্য বের করা
Lodash এর মধ্যে _.differenceInDays() নামে কোনো ফাংশন সরাসরি নেই, তবে আপনি দুটি Date এর মধ্যে দিনের পার্থক্য বের করতে Lodash এর অন্যান্য utilities ব্যবহার করতে পারেন। এর জন্য আপনি Date API বা অন্য লাইব্রেরি (যেমন Moment.js বা Day.js) ব্যবহার করতে পারেন।
৭. _.debounce() এবং টাইম ইভেন্ট হ্যান্ডলিং
যদি আপনার প্রয়োজন হয় টাইমিং ইভেন্ট বা ক্রমাগত টাইম চেক করার জন্য, তখন _.debounce() ফাংশনটি ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি ইউজারের টাইপিং ইভেন্টে টাইম চেক করতে চাইলে এটি কার্যকর হতে পারে।
উদাহরণ:
const _ = require('lodash');
let counter = 0;
// টাইপিং ইভেন্ট ডিবাউন্স করা
let handleTyping = _.debounce(() => {
counter++;
console.log(`User has typed ${counter} times.`);
}, 500);
handleTyping();
handleTyping();
handleTyping(); // এই কলগুলো 500ms পরে একবারেই হবে
এখানে _.debounce() ফাংশনটি টাইপিং ইভেন্টের সংখ্যা একত্রিত করছে এবং 500ms পর একবারই এটি কল হবে, ফলে অনেক টাইপিং ইভেন্ট গুলোকে একত্রিত করে কাজ করা হচ্ছে।
উপসংহার
Lodash এর মাধ্যমে Date এবং Time ম্যানিপুলেশন কাজগুলো সহজে করা সম্ভব, যদিও Lodash সরাসরি Date/Time ম্যানিপুলেশন এর জন্য অনেক ফাংশন প্রদান করে না, তবুও এর utility functions যেমন _.now(), _.add(), _.floor(), _.isEqual(), এবং _.map() টাইমিং এবং Date manipulation এর জন্য কার্যকর হতে পারে। আপনি যখন Lodash এর সাথে JavaScript Date API ব্যবহার করেন, তখন Date এবং Time সম্পর্কিত কাজগুলো দ্রুত এবং কার্যকরীভাবে করতে পারবেন।
Lodash একটি শক্তিশালী JavaScript লাইব্রেরি, যা বিভিন্ন ধরনের ডেটা এবং সময় ম্যানিপুলেশনে সাহায্য করে। যদিও Lodash নিজে সময় এবং ডেট ম্যানেজমেন্টের জন্য সরাসরি কোনো প্যাকেজ সরবরাহ করে না, তবে এটি কিছু utility functions সরবরাহ করে যা ডেট এবং সময় সম্পর্কিত কাজগুলো সহজ করে তোলে। Lodash এর _.now(), _.debounce(), এবং _.throttle() ফাংশনগুলো ব্যবহার করে ডেট এবং সময় ম্যানেজমেন্ট সহজে করা যায়।
১. _.now() - বর্তমান সময় পাওয়া
_.now() ফাংশনটি বর্তমান সময় (Unix টাইমস্ট্যাম্প) মিলিসেকেন্ডে রিটার্ন করে। এটি সাধারণত বর্তমান সময়ের সাথে সম্পর্কিত কাজ করতে ব্যবহৃত হয়।
সিনট্যাক্স:
_.now();
উদাহরণ:
const _ = require('lodash');
let currentTime = _.now();
console.log(currentTime); // এটি বর্তমান সময় মিলিসেকেন্ডে রিটার্ন করবে
ব্যাখ্যা: _.now() ফাংশনটি বর্তমান সময় (Unix টাইমস্ট্যাম্প) মিলিসেকেন্ডে রিটার্ন করে, যা অন্যান্য সময় বা ডেটা অপারেশনগুলির জন্য ব্যবহার করা যেতে পারে।
২. _.debounce() - ফাংশন কল সীমিত করা
_.debounce() ফাংশনটি একটি নির্দিষ্ট ফাংশনকে debounce করে, অর্থাৎ, এটি একাধিকবার ফাংশন কল হওয়ার পরিবর্তে একটি নির্দিষ্ট সময় পর পর একবারই কল করবে। এটি সাধারণত ইউজার ইন্টারঅ্যাকশন যেমন টাইপিং বা স্ক্রোলিংয়ের জন্য ব্যবহৃত হয়, যাতে লোড কমানো যায় এবং কার্যকারিতা বাড়ানো যায়।
সিনট্যাক্স:
_.debounce(func, wait, [options]);
- func: যে ফাংশনটি আপনি debounce করতে চান।
- wait: ফাংশন কল করার মাঝে যে সময় বিরতি থাকতে হবে (মিলিসেকেন্ডে)।
- [options]: Optional, এমন কিছু বিকল্প যা আপনাকে আরও কাস্টমাইজেশন করতে দেয়।
উদাহরণ:
const _ = require('lodash');
let count = 0;
const increment = _.debounce(() => {
count++;
console.log(count);
}, 1000);
// একাধিক বার কল করা হলেও, শুধু একবার কল হবে
increment();
increment();
increment();
ব্যাখ্যা: এখানে, _.debounce() ফাংশনটি increment() ফাংশনকে একাধিকবার কল হওয়ার পরিবর্তে প্রতি ১ সেকেন্ডে একবার কল করবে, এর ফলে প্রয়োজনীয় সময় ব্যতীত অতিরিক্ত কল হয় না।
৩. _.throttle() - ফাংশন কল সীমিত করা নির্দিষ্ট সময়ের মধ্যে
_.throttle() ফাংশনটি নির্দিষ্ট সময় পর পর ফাংশনটিকে একবার করে কল করতে ব্যবহৃত হয়। এটি _.debounce() এর মতো, তবে এটি নির্দিষ্ট সময়ের মধ্যে একাধিকবার ফাংশন কল করার সুযোগ দেয়।
সিনট্যাক্স:
_.throttle(func, wait, [options]);
- func: যে ফাংশনটি আপনি throttle করতে চান।
- wait: ফাংশনটি কতটুকু সময়ের মধ্যে একবার কল হবে (মিলিসেকেন্ডে)।
- [options]: Optional, অতিরিক্ত কাস্টমাইজেশন অপশন।
উদাহরণ:
const _ = require('lodash');
let count = 0;
const increment = _.throttle(() => {
count++;
console.log(count);
}, 1000);
// এখানে প্রতিবারেই increment কল হবে কিন্তু এক সেকেন্ডে একবার
increment();
increment();
increment();
ব্যাখ্যা: এখানে, _.throttle() ফাংশনটি increment() ফাংশনকে ১ সেকেন্ডে একবার করে কল করবে, যতবারই ফাংশনটি কল করা হোক না কেন।
৪. _.delay() - একটি ফাংশন নির্দিষ্ট সময় পর কল করা
_.delay() ফাংশনটি একটি নির্দিষ্ট সময় পর ফাংশনটি কল করতে ব্যবহৃত হয়। এটি সময় নির্ধারণ করে যে, কতটুকু সময় পরে ফাংশনটি কল হবে।
সিনট্যাক্স:
_.delay(func, wait, [args]);
- func: ফাংশনটি যা আপনি নির্দিষ্ট সময় পর কল করতে চান।
- wait: সময় (মিলিসেকেন্ডে) যা পরবর্তী কলের জন্য অপেক্ষা করবে।
- [args]: Optional, ফাংশনের জন্য প্যারামিটার।
উদাহরণ:
const _ = require('lodash');
const greet = () => {
console.log('Hello after 2 seconds!');
};
// 2 সেকেন্ড পরে ফাংশনটি কল হবে
_.delay(greet, 2000);
ব্যাখ্যা: এখানে _.delay() ফাংশনটি greet() ফাংশনটিকে ২ সেকেন্ড পর কল করবে।
উপসংহার
Lodash লাইব্রেরির _.now(), _.debounce(), _.throttle(), এবং _.delay() ফাংশনগুলো ডেট এবং সময় ম্যানেজমেন্টে অত্যন্ত কার্যকর। এগুলি:
_.now(): বর্তমান সময় মাপার জন্য ব্যবহার করা হয়।_.debounce(): একাধিক ফাংশন কল সীমিত করার জন্য ব্যবহৃত হয়।_.throttle(): নির্দিষ্ট সময়ের মধ্যে ফাংশন কল সীমিত করার জন্য ব্যবহৃত হয়।_.delay(): একটি ফাংশনকে নির্দিষ্ট সময় পর কল করতে ব্যবহৃত হয়।
এই ফাংশনগুলো ডেট এবং সময় সম্পর্কিত কাজগুলো সহজ এবং কার্যকরী করে তোলে, এবং বিশেষত ইউজার ইন্টারঅ্যাকশন অথবা টাইম-বেসড কাজগুলো অপটিমাইজ করতে সাহায্য করে।
Lodash এর _.now() ফাংশনটি বর্তমান সময় (timestamp) বের করার জন্য ব্যবহৃত হয়। এটি মূলত সিস্টেমের বর্তমান সময়কে মিলিসেকেন্ড (milliseconds) হিসেবে রিটার্ন করে। এটি date manipulation এবং টাইমস্ট্যাম্প সম্পর্কিত কাজের জন্য খুবই কার্যকরী।
১. _.now() ফাংশন এর ব্যবহার
_.now() ফাংশনটি কোনো প্যারামিটার গ্রহণ করে না এবং শুধুমাত্র বর্তমান সময়কে মিলিসেকেন্ড হিসেবে রিটার্ন করে।
Syntax:
_.now();
উদাহরণ:
const _ = require('lodash');
// বর্তমান সময় (timestamp) বের করা
let currentTimestamp = _.now();
console.log(currentTimestamp); // উদাহরণস্বরূপ: 1676346781234
এখানে, _.now() বর্তমান সময়কে একটি ইউনিক টাইমস্ট্যাম্প হিসেবে রিটার্ন করেছে। এটি সাধারনত 1970 সালের জানুয়ারি ১ তারিখ থেকে চলমান সময়ের মিলিসেকেন্ডে গণনা করা হয় (Unix epoch time)।
২. _.now() এর ব্যবহারিক পরিস্থিতি
_.now() ফাংশনটি বিভিন্ন প্রেক্ষাপটে ব্যবহার করা যেতে পারে:
- ট্র্যাকিং সময়: কোনো কাজের শুরু এবং শেষ সময় ট্র্যাক করার জন্য, যেমন ফাংশন execution time বা অপারেশনের duration মাপতে।
- টাইমস্ট্যাম্প তৈরি: ডেটাবেসে record insert করার সময় সময়ের সঠিক টাইমস্ট্যাম্প সংরক্ষণ করার জন্য।
- অ্যানিমেশন এবং টাইমিং: অ্যানিমেশন বা টাইমিং ফিচারগুলির মধ্যে নির্দিষ্ট সময়ের মধ্যে কিছু কাজ সম্পন্ন করার জন্য।
- ডেটা হ্যান্ডলিং: ডেটা বা লগ ফাইলগুলির সাথে কাজ করার সময়ে সময়ের ভিত্তিতে ডেটা ফিল্টার বা সংগ্রহ করতে।
৩. _.now() ব্যবহার করে সময়ের পার্থক্য বের করা
_.now() ব্যবহার করে আপনি দুটি সময়ের মধ্যে পার্থক্য বের করতে পারেন। উদাহরণস্বরূপ, একটি কাজ শুরু হওয়ার সময় এবং শেষ হওয়ার সময়ের মধ্যে কত মিলিসেকেন্ড পার হয়েছে তা বের করা।
উদাহরণ:
const _ = require('lodash');
// কাজ শুরু হওয়া সময়
let startTime = _.now();
// কিছু কাজ করার জন্য স্লিপ বা বিলম্ব (delay)
setTimeout(() => {
// কাজ শেষ হওয়ার সময়
let endTime = _.now();
// কাজের সময়ের পার্থক্য
let duration = endTime - startTime;
console.log('Task completed in ' + duration + ' milliseconds');
}, 2000);
এখানে, কাজ শুরু হওয়ার সময় এবং শেষ হওয়ার সময়ের মধ্যে পার্থক্য বের করা হয়েছে। এটি 2 সেকেন্ডের বিলম্ব (delay) দিয়ে setTimeout ফাংশনের মাধ্যমে কাজ করেছে, এবং সময়ের পার্থক্য মিলিসেকেন্ডে বের করেছে।
৪. _.now() এর পারফরম্যান্স এবং সুবিধা
- সহজ এবং দ্রুত:
_.now()খুবই দ্রুত এবং একটি সোজা পদ্ধতি যা বর্তমান সময়ের টাইমস্ট্যাম্প বের করতে পারে। এটি মূলতDate.now()এর সমান এবং তুলনামূলকভাবে দ্রুত কাজ করে। - মিলিসেকেন্ড ভিত্তিক: এটি মিলিসেকেন্ড হিসেবে সময় বের করে, যা অত্যন্ত নির্ভুল এবং অনেক ক্ষেত্রে উপকারী, বিশেষ করে টাইমিং, অ্যানিমেশন, বা সময় সম্পর্কিত কাজের জন্য।
উপসংহার
Lodash এর _.now() ফাংশনটি বর্তমান সময়ের টাইমস্ট্যাম্প বের করার জন্য একটি খুবই কার্যকরী টুল। এটি date manipulation এবং time tracking এর জন্য সহজ এবং নির্ভুল পদ্ধতি প্রদান করে। আপনি এটি ফাংশন execution time হিসাব করা, টাইমস্ট্যাম্প তৈরি করা, অথবা সময়ের পার্থক্য বের করার মতো অনেক কাজে ব্যবহার করতে পারেন।
Lodash এবং Moment.js দুটি শক্তিশালী JavaScript লাইব্রেরি। Lodash এর সাহায্যে আপনি বিভিন্ন ধরনের utility functions ব্যবহার করতে পারেন, যেমন array manipulation, object manipulation, এবং function utilities। অন্যদিকে, Moment.js সময় এবং তারিখের সাথে কাজ করার জন্য একটি জনপ্রিয় লাইব্রেরি। যখন আপনি দুটি লাইব্রেরি একসাথে ব্যবহার করেন, তখন আপনি JavaScript ডেটা এবং সময় পরিচালনা করার কাজগুলোকে আরও দ্রুত এবং কার্যকরী করতে পারেন।
এখানে আমরা দেখবো কীভাবে Lodash এবং Moment.js একত্রে ব্যবহার করা যায়, এবং এই দুটি লাইব্রেরি একসাথে কীভাবে ডেটা ম্যানিপুলেশন এবং সময় পরিচালনা করতে সহায়তা করতে পারে।
১. Moment.js পরিচিতি
Moment.js একটি JavaScript লাইব্রেরি যা সময় এবং তারিখের সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের কার্যকারিতা প্রদান করে, যেমন:
- তারিখ ও সময় পার্স (parse) করা
- সময় ফরম্যাট করা
- তারিখ এবং সময়ের মধ্যে পার্থক্য নির্ণয় করা
- নির্দিষ্ট সময় জোনে তারিখ কনভার্ট করা
- যোগ এবং বিয়োগ সময়ের সাথে
উদাহরণ:
const moment = require('moment');
let now = moment();
console.log(now.format('YYYY-MM-DD')); // বর্তমান তারিখ ফরম্যাট করা
console.log(now.add(7, 'days').format('YYYY-MM-DD')); // ৭ দিন পরের তারিখ
২. Lodash এর সাথে Moment.js ব্যবহার
Lodash এবং Moment.js একসাথে ব্যবহারের মাধ্যমে আপনি array manipulation এবং সময়ের সাথে সম্পর্কিত কার্যক্রম একত্রে করতে পারবেন। উদাহরণস্বরূপ, আপনি একটি array থেকে তারিখ বের করে তা format করতে এবং সেই তারিখের উপর বিভিন্ন সময়ের গণনা করতে পারেন।
উদাহরণ ১: Arrays থেকে তারিখ বের করা এবং Moment.js দিয়ে ফরম্যাট করা
ধরা যাক, আপনার কাছে একটি array রয়েছে যা তারিখের string ধারণ করছে। আপনি Lodash ব্যবহার করে ঐ array থেকে date values বের করে Moment.js দিয়ে format করতে পারবেন।
const _ = require('lodash');
const moment = require('moment');
let dates = ['2022-10-01', '2023-03-15', '2021-07-20'];
// Lodash এর map() ব্যবহার করে তারিখ ফরম্যাট করা
let formattedDates = _.map(dates, (date) => moment(date).format('MMMM Do YYYY'));
console.log(formattedDates);
// ['October 1st 2022', 'March 15th 2023', 'July 20th 2021']
এখানে, Lodash এর _.map() ফাংশন ব্যবহার করে আমরা dates array এর প্রতিটি তারিখে moment() ফাংশন দিয়ে formatting করেছি।
৩. Moment.js এর সাথে Date Manipulation এবং Lodash এর Utility Functions
ধরা যাক, আপনি একটি array এর মধ্যে কিছু নির্দিষ্ট তারিখের পার্থক্য নির্ণয় করতে চান। এখানে, Lodash এবং Moment.js একত্রে ব্যবহার করে আপনি এটি সহজে করতে পারবেন।
উদাহরণ ২: তারিখের মধ্যে পার্থক্য বের করা এবং Filtering
const _ = require('lodash');
const moment = require('moment');
let dates = ['2023-01-01', '2022-12-25', '2021-07-15', '2023-03-10'];
let referenceDate = moment('2023-01-01');
// Lodash এর filter() ব্যবহার করে, ৭ দিনের মধ্যে থাকা তারিখগুলো ফিল্টার করা
let recentDates = _.filter(dates, (date) => moment(date).isAfter(referenceDate.subtract(7, 'days')));
console.log(recentDates);
// ['2023-01-01', '2023-03-10']
এখানে, আমরা Lodash এর _.filter() ফাংশন ব্যবহার করে তারিখগুলো ফিল্টার করেছি এবং Moment.js এর isAfter() ফাংশন দিয়ে নির্ধারণ করেছি যে কোন তারিখটি ৭ দিনের মধ্যে আছে।
৪. Moment.js এর সাথে Sorting এবং Lodash
Moment.js এর সাথে Lodash ব্যবহার করে আপনি সহজেই সময় ভিত্তিক array গুলি sort করতে পারবেন। উদাহরণস্বরূপ, যদি আপনার কাছে কিছু তারিখ থাকে এবং আপনি এগুলিকে একটি নির্দিষ্ট সময়ের মাধ্যমে সাজাতে চান, তাহলে Lodash এর _.sortBy() ফাংশন এবং Moment.js এর moment() ফাংশন একসাথে ব্যবহার করতে পারেন।
উদাহরণ ৩: তারিখ অনুযায়ী Sorting
const _ = require('lodash');
const moment = require('moment');
let dates = ['2023-02-01', '2022-12-25', '2023-03-10', '2021-07-15'];
// Lodash এর sortBy() ব্যবহার করে তারিখগুলো সাজানো
let sortedDates = _.sortBy(dates, (date) => moment(date));
console.log(sortedDates);
// ['2021-07-15', '2022-12-25', '2023-02-01', '2023-03-10']
এখানে, Lodash এর _.sortBy() ফাংশন ব্যবহার করে আমরা তারিখগুলো ascending order এ সাজিয়েছি, এবং Moment.js দিয়ে তারিখগুলিকে সঠিকভাবে চেক করেছি।
৫. Moment.js এবং Lodash এর মধ্যে ফাংশনালিটির সমন্বয়
Moment.js এবং Lodash এর মধ্যে সমন্বয়ের মাধ্যমে আপনি বড় প্রকল্পে ডেটা এবং সময়ের সাথে আরও দক্ষতার সাথে কাজ করতে পারেন। উদাহরণস্বরূপ, আপনি একটি array থেকে তারিখ গুলো বের করতে পারেন এবং সেগুলোর মধ্যে পার্থক্য নির্ণয় করতে পারেন, তারপর প্রয়োজনীয় মানগুলো প্রক্রিয়াকরণ করতে পারেন।
উদাহরণ ৪: কিছু নির্দিষ্ট তারিখের জন্য Days Between Calculation
const _ = require('lodash');
const moment = require('moment');
let dates = ['2023-01-01', '2023-03-10', '2023-05-15'];
let today = moment();
// Lodash এবং Moment.js একসাথে ব্যবহার করে, প্রতিটি তারিখের সাথে আজকের তারিখের পার্থক্য বের করা
let daysDifference = _.map(dates, (date) => ({
date: date,
daysAgo: today.diff(moment(date), 'days')
}));
console.log(daysDifference);
// [
// { date: '2023-01-01', daysAgo: 89 },
// { date: '2023-03-10', daysAgo: 39 },
// { date: '2023-05-15', daysAgo: -45 }
// ]
এখানে, Lodash এর _.map() ফাংশন এবং Moment.js এর diff() ফাংশন ব্যবহার করে, আমরা প্রতিটি তারিখের সাথে আজকের তারিখের পার্থক্য বের করেছি এবং সেগুলোকে একটি নতুন array তে map করেছি।
উপসংহার
Lodash এবং Moment.js একত্রে ব্যবহার করলে JavaScript ডেটা এবং সময় ব্যবস্থাপনাকে আরও সহজ এবং কার্যকরী করা যায়। Lodash এর utility functions (যেমন filtering, sorting, mapping) এবং Moment.js এর সময় সম্পর্কিত কার্যকারিতা একত্রে ব্যবহারের মাধ্যমে আপনি complex ডেটা এবং সময় সম্পর্কিত কাজগুলো দ্রুত এবং কার্যকরীভাবে সম্পন্ন করতে পারবেন।
Lodash একটি শক্তিশালী JavaScript লাইব্রেরি হলেও এটি নিজে date formatting বা date calculation এর জন্য built-in কোনো সরাসরি ফাংশন প্রদান করে না। তবে, Lodash এর অন্যান্য utility ফাংশন যেমন _.clone(), _.map(), এবং _.filter() ব্যবহার করে ডেটা ম্যানিপুলেশন করা যায়, কিন্তু Date formatting এবং Date calculation এর জন্য আপনি Lodash এর পাশাপাশি date-fns বা moment.js এর মতো লাইব্রেরি ব্যবহার করতে পারেন।
এখানে Date formatting এবং Date calculation এর জন্য Lodash এবং কিছু অন্যান্য লাইব্রেরি ব্যবহার করার পদ্ধতি আলোচনা করা হলো।
১. Date Formatting এর জন্য date-fns ব্যবহার
date-fns একটি জনপ্রিয় এবং ছোট সাইজের লাইব্রেরি যা JavaScript এ ডেটা ফরম্যাটিং এবং ক্যালকুলেশন সহজ করে তোলে। এটি Lodash এর মতো হালকা ও দ্রুত কাজ করে।
Installation:
npm install date-fns
উদাহরণ: Date formatting
const { format } = require('date-fns');
let date = new Date();
// Date কে একটি নির্দিষ্ট ফরম্যাটে পরিবর্তন করা
let formattedDate = format(date, 'yyyy-MM-dd HH:mm:ss');
console.log(formattedDate); // 2024-12-23 14:30:15
এখানে, date-fns এর format() ফাংশনটি ডেটাকে নির্দিষ্ট ফরম্যাটে রূপান্তরিত করেছে।
২. Date Calculation এর জন্য date-fns ব্যবহার
date-fns লাইব্রেরি ব্যবহার করে আপনি সহজেই date calculation করতে পারবেন। উদাহরণস্বরূপ, আপনি একটি তারিখ থেকে কিছু দিন যোগ বা বিয়োগ করতে পারেন।
উদাহরণ: Date Calculation (দিন যোগ করা)
const { addDays, format } = require('date-fns');
let date = new Date();
// তারিখে 5 দিন যোগ করা
let newDate = addDays(date, 5);
// নতুন তারিখ ফরম্যাট করা
let formattedNewDate = format(newDate, 'yyyy-MM-dd');
console.log(formattedNewDate); // 2024-12-28
এখানে, addDays() ফাংশনটি বর্তমান তারিখ থেকে 5 দিন যোগ করেছে এবং তারপর সেটিকে ফরম্যাট করা হয়েছে।
৩. Moment.js এর ব্যবহার
moment.js হলো আরেকটি জনপ্রিয় লাইব্রেরি যা date formatting এবং calculation এর জন্য ব্যাপকভাবে ব্যবহৃত হয়। তবে এটি date-fns এর তুলনায় কিছুটা বড় এবং পুরনো হলেও এখনও অনেক প্রোজেক্টে ব্যবহৃত হয়।
Installation:
npm install moment
উদাহরণ: Date formatting with moment.js
const moment = require('moment');
let date = moment();
// Date কে একটি নির্দিষ্ট ফরম্যাটে পরিবর্তন করা
let formattedDate = date.format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate); // 2024-12-23 14:30:15
এখানে, moment() ফাংশনটি বর্তমান তারিখ এবং সময় নেয় এবং format() ফাংশনটি সেটিকে ফরম্যাট করে।
উদাহরণ: Date Calculation with moment.js
const moment = require('moment');
let date = moment();
// তারিখে 5 দিন যোগ করা
let newDate = date.add(5, 'days');
// নতুন তারিখ ফরম্যাট করা
let formattedNewDate = newDate.format('YYYY-MM-DD');
console.log(formattedNewDate); // 2024-12-28
এখানে, add() ফাংশনটি তারিখে 5 দিন যোগ করেছে এবং format() ফাংশনটি সেটি ফরম্যাট করে প্রদর্শন করেছে।
৪. Lodash এর ব্যবহার (Partial Support)
Lodash স্বয়ং ডেটা ফরম্যাটিং বা ক্যালকুলেশন সরাসরি করতে না পারলেও, আপনি কিছু সাধারণ ডেটা ম্যানিপুলেশন করতে ব্যবহার করতে পারেন, যেমন date comparison বা array manipulation যা Date objects এর সাথে ব্যবহার করা যেতে পারে।
উদাহরণ: Date Comparison (Lodash ব্যবহার করে)
const _ = require('lodash');
let date1 = new Date('2024-12-23');
let date2 = new Date('2024-12-24');
// Lodash ব্যবহার করে দুটি তারিখের তুলনা
let isEqual = _.isEqual(date1, date2);
console.log(isEqual); // false
এখানে _.isEqual() ফাংশনটি দুইটি Date object এর মধ্যে সমতা যাচাই করেছে।
উপসংহার
Lodash তার নিজস্ব Date formatting বা Date calculation ফাংশন সরবরাহ না করলেও, আপনি date-fns বা moment.js এর মতো শক্তিশালী লাইব্রেরি ব্যবহার করে এই কাজগুলো করতে পারেন।
date-fnsহল একটি ছোট এবং দ্রুত লাইব্রেরি যা JavaScript এ ডেটা ফরম্যাটিং এবং ক্যালকুলেশন খুব সহজভাবে পরিচালনা করতে সাহায্য করে।moment.jsআরও একটি শক্তিশালী লাইব্রেরি, যা খুব জনপ্রিয়, কিন্তু বর্তমানেdate-fnsএর মতো হালকা লাইব্রেরিগুলির প্রতি প্রবণতা বেড়েছে।- Lodash ব্যবহার করে date comparison এবং array manipulation করা সম্ভব, তবে তা ডেটা ফরম্যাটিং এবং ক্যালকুলেশন এর জন্য নয়।
Read more