Date & Time (তারিখ ও সময়)
Date object, তৈরি, পড়া, ফরম্যাট, হিসাব, Intl.DateTimeFormat — তারিখ নিয়ে কাজের বাংলা গাইড।
তারিখ-সময় নিয়ে কাজ করতে `Date` অবজেক্ট। টাইমস্ট্যাম্প, কাউন্টডাউন, জন্মতারিখের বয়স — এসব রোজকার কাজ।
Date তৈরি
// বর্তমান মুহূর্ত
const now = new Date();
console.log(now); // Tue Sep 23 2026 10:30:00 ...
// নির্দিষ্ট তারিখ
const specific = new Date(2026, 8, 23); // মাস 0-ভিত্তিক!
console.log(specific); // Sep 23 2026
// string থেকে
const parsed = new Date("2026-09-23");
console.log(parsed);
// timestamp (মিলিসেকেন্ড)
const ts = new Date(0); // epoch: 1970-01-01
console.log(ts);সাবধান: মাস 0 থেকে গণনা হয় — জানুয়ারি = 0, ডিসেম্বর = 11। new Date(2026, 8, 23) মানে সেপ্টেম্বর।
মান পড়া (get)
const d = new Date(2026, 8, 23, 14, 30, 15);
console.log(d.getFullYear()); // 2026
console.log(d.getMonth()); // 8 (সেপ্টেম্বর, 0-ভিত্তিক)
console.log(d.getDate()); // 23
console.log(d.getDay()); // 3 (মঙ্গলবার, 0=রবিবার)
console.log(d.getHours()); // 14
console.log(d.getMinutes()); // 30
console.log(d.getSeconds()); // 15
console.log(d.getTime()); // মিলিসেকেন্ড timestampgetDay() সপ্তাহের দিন দেয় (0=রবিবার), আর getDate() মাসের দিন dেয়। এই দুটোয় প্রায়ই গুলি লাগে।
মান সেট করা
const d = new Date();
d.setFullYear(2030);
d.setMonth(0); // জানুয়ারি
d.setDate(d.getDate() + 10); // ১০ দিন পরে
console.log(d);Date ফরম্যাট
const d = new Date(2026, 8, 23, 14, 30);
console.log(d.toDateString()); // "Wed Sep 23 2026"
console.log(d.toTimeString()); // "14:30:00 GMT+0600 ..."
console.log(d.toISOString()); // "2026-09-23T08:30:00.000Z" (UTC)
console.log(d.toLocaleString()); // লোকাল ফরম্যাটIntl.DateTimeFormat
const date = new Date(2026, 8, 23, 14, 30);
const bn = new Intl.DateTimeFormat("bn-BD", {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
}).format(date);
console.log(bn); // "২৩ সেপ্টেম্বর ২০২৬, বুধবার"
const short = new Intl.DateTimeFormat("en-US").format(date);
console.log(short); // "9/23/2026"বাংলা তারিখ দেখাতে `Intl.DateTimeFormat("bn-BD", …)` — দিন/মাস/বছর বিস্তারিত নিয়ন্ত্রণ করা যায়।
Date হিসাব
const start = new Date(2026, 0, 1);
const now = new Date();
// মিলিসেকেন্ডে পার্থক্য
const diff = now - start;
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
console.log(days); // এবার থেকে কত দিন
// বয়স হিসাব
function age(birthDate) {
const now = new Date();
let years = now.getFullYear() - birthDate.getFullYear();
const monthDiff = now.getMonth() - birthDate.getMonth();
if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < birthDate.getDate())) {
years--;
}
return years;
}
console.log(age(new Date(1998, 4, 15))); // বয়সdate-কে বিয়োগ করলে মিলিসেকেন্ড পাই। সেটাকে দিন/ঘণ্টায় রূপান্তর করতে উপরের গুণিতকগুলো মনে রাখুন: ১ দিন = 86400000 ms।
Timestamp ও performance
console.log(Date.now()); // এখনকার timestamp (ms)
// কোন অপারেশন কতক্ষণ
const start = performance.now();
// ভারী কাজ...
const end = performance.now();
console.log(end - start, "ms");| কাজ | মেথড |
|---|---|
| এখনকার তারিখ | new Date() |
| year / month / date | getFullYear() getMonth() getDate() |
| weekday | getDay() (0=রবিবার) |
| বাংলা ফরম্যাট | Intl.DateTimeFormat(\"bn-BD\", …) |
| timestamp | Date.now() / getTime() |
| পার্থক্য | দুটি date-কে বিয়োগ → ms |
new Date(2026, 8, 23) দিলে সেপ্টেম্বর আসে — জানুয়ারি 0। ঘোষণার সময় কনসোলে ফলাফল চেক করুন, নাহলে এক-মাস ভুল হতে পারে।
getHours() লোকাল টাইম; সার্ভার/ক্লায়েন্ট ভিন্ন zone-এ থাকলে getUTCHours() ও toISOString() ব্যবহার করুন — অন্যথায় সময় ৬ ঘণ্টা এদিক-ওদিক দেখাবে।
নিজের জন্মতারিখ দিয়ে Intl.DateTimeFormat("bn-BD")-এ দিন-মাস-বছর দেখান আর একটি ফাংশন লিখুন যা input date থেকে 'কত দিন গেল' বলে।