ঘড়ির কাঁটাকে এড়িয়ে যাওয়া সম্ভব নয়, বিশেষ করে প্রোগ্রামিং-এ। ঠিক যেমন আমরা আমাদের দিনগুলো ট্র্যাক রাখতে ঘড়ি এবং হাতের ঘড়ির ওপর নির্ভর করি, প্রোগ্রামগুলোও টাইম-ট্র্যাকিং টুলস ব্যবহার করে যাতে সেগুলো জানতে পারে কী কখন হবে।
বেশ কিছু অ্যাপ্লিকেশন সময় ট্র্যাক করতে হয়। একটি ব্লগ অ্যাপ্লিকেশনকে মনে রাখতে হয় একটি পোস্ট কখন তৈরি হয়েছিল, درুন একটি ক্যালেন্ডার অ্যাপ্লিকেশন আপনার শিডিউল করা ইভেন্টগুলো দেখায়।
এই গাইডে, আমরা জাভাস্ক্রিপ্টে ডেট এবং টাইমসহ কীভাবে কাজ করতে হয় তা আলোচনা করব। আমরা কয়েকটি উদাহরণের মাধ্যমে এই টুলসের সাথে কীভাবে কাজ করতে হয় তা ব্যাখ্যা করব।
জাভাস্ক্রিপ্ট Date অবজেক্ট কী?
জাভাস্ক্রিপ্টে টাইমসহ কাজ করতে, আমরা Date অবজেক্ট ব্যবহার করি। এটি একটি স্পেশাল অবজেক্ট যা ডেট এবং টাইম সংরক্ষণ করে। আরও, Date অবজেক্টের সাথে ডেট এবং টাইম সম্পর্কে নির্দিষ্ট ইনফরমেশন রিট্রিভ করার জন্য অনেক মেথড থাকে।
ডেট অবজেক্ট এরকম দেখে:
new Date();
এই টিউটোরিয়ালে, আপনি লক্ষ্য করবেন Date ক্যাপিটালাইজড। এটি কারণ Date একটি বিল্ট-ইন জাভাস্ক্রিপ্ট অবজেক্ট। ডেট অবজেক্টসহ কাজ করতে আপনাকে Date শব্দটি ক্যাপিটালাইজ করতে হবে।
Date অবজেক্ট কীভাবে ব্যবহার করবেন
কোনো ভ্যালু ছাড়া, Date অবজেক্ট আমাদের বর্তমান ডেট এবং টাইম বলে। এটি আপনার অপারেটিং সিস্টেমের সেটিংস এবং আপনার টাইমজোন বিবেচনা করে ক্যালকুলেট করা হয়।
আমরা Date অবজেক্ট ব্যবহার করে বর্তমান ডেট রিট্রিভ করতে পারি, এরকম:
81% of participants stated they felt more confident about their tech job prospects after attending a bootcamp. Get matched to a bootcamp today.
The average bootcamp grad spent less than six months in career transition, from starting a bootcamp to finding their first job.
var currentDate = new Date(); console.log(currentDate);
আমাদের কোড একটি Date অবজেক্ট রিটার্ন করে যাতে নিচের ভ্যালুগুলো থাকে:
Wed Jun 24 2020 10:49:46 GMT+0100 (British Summer Time)
আপনি দেখতে পাচ্ছেন, এই আর্টিকেল UK-এ জুন ২৪, ২০২০-এ লেখা হয়েছে, আমাদের টাইমস্ট্যাম্প সেটি দেখাচ্ছে। Date অবজেক্টের সুন্দরতা হলো এটি হিউম্যান-রিডেবল ডেট ফরম্যাটে ডেটা রিটার্ন করে যাতে আমাদের বুঝতে সহজ হয়।
Date ব্যবহার করে টাইমস্ট্যাম্প রিট্রিভ করা
উপরের কোড আমাদের মানুষের জন্য রিডেবল, কিন্তু এখানে একটি সমস্যা আছে—জাভাস্ক্রিপ্ট ভিন্নভাবে কাজ করে। এটি Unix timestamp ব্যবহার করে ডেট ইন্টারপ্রেট করে। Unix timestamps কাউন্ট রাখে কত সেকেন্ড পাস করেছে জানুয়ারি ১, ১৯৭০ থেকে। এটি Unix time শুরু হওয়ার সময়।
বর্তমান সময় টাইমস্ট্যাম্প হিসেবে রিট্রিভ করতে, আপনি getTime() মেথড ব্যবহার করতে পারেন:
var currentDate = new Date(); console.log(currentDate.getTime());
আমাদের কোড 1592992393313 রিটার্ন করে, একটি নাম্বার যা জাভাস্ক্রিপ্ট ইন্টারপ্রেট করতে পারে।
Date অবজেক্ট তৈরি করা
Date অবজেক্টের ডিফল্ট ভ্যালু হলো বর্তমান ডেট এবং টাইম। আপনি এটি পরিবর্তন করে একটি নির্দিষ্ট টাইমস্ট্যাম্প বা ডেট ও টাইম ভিত্তিক ডেট তৈরি করতে পারেন।
আপনি এটি করতে পারেন একটি টাইমস্ট্যাম্প, একটি ডেট স্ট্রিং, বা বর্তমান ডেট ও টাইমের সাথে মিল রেখে 숫자들의 একটি সেট স্পেসিফাই করে:
- new Date(timestamp)
- new Date(string)
- new Date(year, month, day, hours, minutes, seconds, milliseconds)
মনে করুন আমরা জানুয়ারি ১, ২০২১-এর জন্য একটি টাইমস্ট্যাম্প তৈরি করতে চাই। আমরা এটি এই কোড ব্যবহার করে করতে পারি:
var nextYear = new Date("January 1 2021 12:00"); console.log(nextYear);
আমাদের কোড রিটার্ন করে: Fri Jan 01 2021 12:00:00 GMT+0000 (Greenwich Mean Time)
আমরা এটিকে এই লাইনগুলো ব্যবহার করেও তৈরি করতে পারতাম:
var nextYear = new Date(1609502400000); console.log(nextYear); var nextYear = new Date(2021, 1, 1, 0, 0, 0, 0); console.log(nextYear);
আমাদের কোড রিটার্ন করে:
Fri Jan 01 2021 12:00:00 GMT+0000 (Greenwich Mean Time) Fri Jan 01 2021 12:00:00 GMT+0000 (Greenwich Mean Time)
এই সব পদ্ধতিই একই Date অবজেক্ট তৈরি করে।
ডেট রিট্রিভ করা
Date অবজেক্টের সাথে বিল্ট-ইন মেথডের একটি অ্যারে থাকে ডেট সম্পর্কে নির্দিষ্ট ইনফরমেশন অ্যাক্সেস করার জন্য। ডেট সম্পর্কে ইনফরমেশন রিট্রিভ করতে সাহায্য করার মেথডগুলো get দিয়ে শুরু হয়। আপনার রেফারেন্সের জন্য একটি লিস্ট নিচে দেওয়া হলো:
- Year: getFullYear()
- Month: getMonth() (0 এবং 11 এর মাঝে, যেখানে 0 হলো জানুয়ারি)
- Day of the Month: getDate() (1 এবং 31 এর মাঝে)
- Day of the Week: getDay() (0 এবং 6 এর মাঝে, যেখানে রবিবার 0)
- Hour: getHours() (0 এবং 23 এর মাঝে, যেখানে মিডনাইট 0)
- Minute: getMinutes()
- Second: getSeconds()
- Millisecond: getMilliseconds()
- Timestamp: getTime()
ধরা যাক আমরা এখন কি সময় তা জানতে চাই। আমরা এটি এই কোড ব্যবহার করে করতে পারি:
const currentDate = new Date(); console.log(currentDate.getHours());
আমাদের কোড 11 রিটার্ন করে। এটি আমাদের দেখাচ্ছে যে এটি বর্তমানে দিনের ১১ ঘন্টা।
এই ফাংশনগুলো উপকারী কারণ এগুলো দিন সম্পর্কে নির্দিষ্ট টুকরো ইনফরমেশন এক্সট্র্যাক্ট করতে সাহায্য করে। আমাদের কোনো স্ট্রিং ম্যানিপুলেট করার চিন্তা করতে হবে না; আমরা শুধু get মেথডগুলো ব্যবহার করে বর্তমান সময় সম্পর্কে আরও জানতে পারি।
আপনি Universal Time Coordinated (UTC) ব্যবহার করে টাইমস্ট্যাম্প রিট্রিভ করতে পারেন UTC get এবং ডেট ভ্যালুর মাঝে যোগ করে। ডিফল্টভাবে, Date অবজেক্ট ইনফরমেশন ইউজারের লোকাল টাইমজোনে রিটার্ন করে। আপনি যদি একাধিক টাইমজোনের ইউজারদের সাথে কাজ করেন, ইভেন্টগুলো কখন হয়েছে সেটি সহজে ট্র্যাক করার জন্য UTC ব্যবহার করা اکثر সময় ভালো।
Date অবজেক্ট আপডেট করা
Date অবজেক্টগুলো Date set মেথডগুলো ব্যবহার করে আপডেট করা যায়। Date অবজেক্ট দ্বারা অফার করা প্রতিটি get মেথডের জন্য একটি set মেথড আছে:
- Year: setFullYear()
- Month: setMonth()
- Day of the Month: setDate()
- Day of the Week: setDay()
- Hour: setHours()
- Minute: setMinutes()
- Second: setSeconds()
- Millisecond: setMilliseconds()
- Timestamp: setTime()
মনে করুন আমরা গত বছর এই দিনে সপ্তাহের কোন দিন ছিল তা জানতে চাই। আমরা আমাদের Date অবজেক্টের বছর ২০১৯ সেট করে setFullYear() ব্যবহার করে এটি করতে পারি। তারপর, আমরা getDay() ব্যবহার করে সপ্তাহের দিন রিট্রিভ করতে পারি:
const currentDate = new Date(); currentDate.setFullYear(2019); const daysOfTheWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', Saturday', Sunday']; const dayLastYear = currentDate.getDay(); console.log('On this day last year it was ' + daysOfTheWeek[dayLastYear]);
আমাদের কোড রিটার্ন করে: On this day last year it was Tuesday।
প্রথমে আমরা Date() ব্যবহার করে বর্তমান ডেট রিট্রিভ করি। তারপর আমরা setFullYear() মেথড ব্যবহার করে আমাদের ডেট অবজেক্টের বছর ২০১৯ সেট করি।
পরবর্তী, আমরা daysOfTheWeek নামে একটি অ্যারে ঘোষণা করি। এটি getDay() দ্বারা রিটার্ন করা নম্বরকে সপ্তাহের দিনে কনভার্ট করতে সাহায্য করে।
তারপর, আমরা getDay() মেথড ব্যবহার করে ২০১৯-এ এই সময় সপ্তাহের কোন দিন ছিল তা বের করি। তারপর, আমরা On this day last year it was মেসেজটি সপ্তাহের দিনসহ প্রিন্ট করি।
উপসংহার
Date অবজেক্ট ব্যবহার করে আপনি জাভাস্ক্রিপ্টে ডেট এবং টাইমসহ কাজ করতে পারেন। Date অবজেক্টের সাথে get মেথডের একটি রেঞ্জ থাকে যা আপনাকে বর্তমান সময় সম্পর্কে জানতে সাহায্য করে এবং set মেথড ডেট ও টাইম অবজেক্ট ম্যানিপুলেট করতে। এখন আপনি জাভাস্ক্রিপ্টে ডেট এবং টাইম এক্সপার্টের মতো ব্যবহার করতে পারবেন!