آموزش کار با تاریخ و زمان در جاوااسکریپت؛ راهنمای کامل Date Object

۱۴۰۵/۰۸/۱۳ | چهارشنبه، ۱۳ آبان
دوره آموزشی ویژه 4 اپیزود اول تمام دوره های آموزشی ویدیویی رایگان میباشد دانلود رایگان

دورهٔ جامع CSS از صفر

آموزش CSS از صفر در ۲۲ ویدیو: مدل جعبه، انتخاب‌گر، فلکس‌باکس، گرید، واکنش‌گرایی، متغیرها، انیمیشن و معماری، تا پروژهٔ کامل صفحهٔ محصول؛ کد کنار خروجی ...

مدرس دوره : تیم 22 اپیزود ویدیویی 03 ساعت و 33 دقیقه و 59 ثانیه آموزش ویدیویی
متن پرونده شماره 94 - جاوااسکریپت

تقریباً در هر پروژه واقعی به تاریخ و زمان نیاز پیدا می‌کنید؛ از نمایش تاریخ ثبت سفارش و زمان انتشار مقاله گرفته تا محاسبه روزهای باقی‌مانده تا پایان اشتراک. آبجکت Date در جاوااسکریپت تمام ابزارهای لازم برای ساخت، خواندن و دستکاری تاریخ را در اختیار شما قرار می‌دهد و در این مقاله به‌صورت کامل با آن کار می‌کنیم.

ساخت آبجکت تاریخ

ساده‌ترین راه، ساخت تاریخِ همین لحظه است. همچنین می‌توانید تاریخ دلخواه بسازید؛ فقط به این نکته مهم توجه کنید که شماره ماه‌ها در جاوااسکریپت از صفر شروع می‌شود، یعنی ژانویه ماه صفر است:

const now = new Date();           // تاریخ و ساعت همین لحظه
console.log(now);

// توجه: ماه دوم یعنی مارس، چون شمارش از صفر است
const custom = new Date(2026, 2, 20, 14, 30);
console.log(custom);

خواندن اجزای تاریخ

با متدهای getter می‌توان سال، ماه، روز، ساعت و دقیقه را جداگانه استخراج کرد. برای نمایش ماه به شکل صحیح برای کاربر، حتماً یک واحد به آن اضافه کنید:

const now = new Date();

console.log(now.getFullYear());   // سال مثل 2026
console.log(now.getMonth());      // 0 تا 11 و نیاز به +1 دارد
console.log(now.getDate());       // روز ماه
console.log(now.getDay());        // روز هفته از 0 یعنی یکشنبه
console.log(now.getHours());      // ساعت
console.log(now.getMinutes());    // دقیقه

Timestamps و محاسبات زمانی

هر تاریخ در پس‌زمینه یک عدد است؛ تعداد میلی‌ثانیه‌های گذشته از اول ژانویه ۱۹۷۰. با کم و زیاد کردن این اعداد می‌توان اختلاف بین دو تاریخ را محاسبه کرد:

const start = new Date(2026, 0, 1);
const end = new Date(2026, 0, 20);

const diffMs = end - start;
const diffDays = diffMs / (1000 * 60 * 60 * 24);
console.log(`${diffDays} روز اختلاف`);
محصول اورجینال INZIP
قالب وردپرس باریستا مخصوص کافه تم نسکافه ای روشن (دو زبانه)

قالب وردپرس باریستا مخصوص کافه تم نسکافه ای روشن (دو زبانه)

دانلود پوسته وردپرس باریستا؛ قالب کافیشاپ، رُستری قهوه و فروشگاه قهوه دوزبانه با منوی رومیزی، رزرو آنلاین میز با کد پیامکی و ووکامرس. طراحی اختصاصی inzip.ir

تحویل آنی آپدیت رایگان بدون قفل لایسنس پشتیبانی واقعی
۳,۹۹۰,۰۰۰ تومان ۲,۹۶۰,۰۰۰ تومان
بازدید و دانلود آنی
٪۲۶
تخفیف ویژه
سود شما
۱,۰۳۰,۰۰۰ تومان

تغییر تاریخ با Setterها

مانند متدهای getter، متدهای setter هم وجود دارند که اجزای تاریخ را تغییر می‌دهند. جالب این جاست که اگر عددی خارج از بازه بدهید، جاوااسکریپت خودش تاریخ را اصلاح می‌کند:

const date = new Date(2026, 0, 1);

date.setDate(date.getDate() + 10);   // ده روز بعد
console.log(date);

date.setFullYear(2027);              // تغییر سال
console.log(date.getFullYear());

تبدیل تاریخ به رشته خوانا

متدهایی مانند toLocaleDateString تاریخ را بر اساس تنظیمات محلی کاربر به متن خوانا تبدیل می‌کنند. برای نمایش تاریخ شمسی کافی است fa-IR را به عنوان locale بدهید؛ قابلیتی بسیار کاربردی برای سایت‌های فارسی:

const now = new Date();

console.log(now.toLocaleDateString("fa-IR"));
// خروجی مانند 1404/11/25

console.log(now.toLocaleTimeString("fa-IR"));

const options = { year: "numeric", month: "long", day: "numeric" };
console.log(now.toLocaleDateString("fa-IR", options));
// خروجی مانند 25 بهمن 1404

مقایسه دو تاریخ

از آن جایی که تاریخ‌ها در مقایسه به مقدار عددی خود تبدیل می‌شوند، می‌توانیم مستقیماً آن‌ها را با عملگرهای مقایسه‌ای بسنجیم؛ مثلاً برای بررسی منقضی شدن یک کد تخفیف:

const expireDate = new Date(2026, 5, 1);
const today = new Date();

if (today > expireDate) {
    console.log("کد تخفیف منقضی شده است");
} else {
    console.log("کد تخفیف هنوز معتبر است");
}

مثال کاربردی: شمارش روزهای باقی‌مانده

بیایید با ترکیب همه چیزهایی که آموختیم، تابعی بنویسیم که تعداد روزهای مانده تا یک رویداد را حساب کند:

function daysUntil(targetYear, targetMonth, targetDay) {
    const target = new Date(targetYear, targetMonth - 1, targetDay);
    const today = new Date();
    const diff = target - today;
    return Math.ceil(diff / (1000 * 60 * 60 * 24));
}

console.log(`${daysUntil(2026, 6, 15)} روز تا رویداد مانده`);

جمع‌بندی

آبجکت Date ابزار کاملی برای کار با تاریخ در جاوااسکریپت است؛ فقط باید به نکات ظریف آن مانند شروع ماه‌ها از صفر و واحد میلی‌ثانیه دقت کنید. برای نمایش تاریخ به کاربران ایرانی، متد toLocaleDateString با تنظیم fa-IR بهترین و سریع‌ترین راه است و در مقاله آموزش Intl به‌صورت عمیق‌تری به این موضوع می‌پردازیم.

برچسب‌های این مقاله
  • تاریخ در جاوااسکریپت
  • date object در جاوااسکریپت
  • کار با زمان در جاوااسکریپت
  • تاریخ شمسی جاوااسکریپت
  • tolocaledatestring
  • timestamp
  • محاسبه اختلاف تاریخ
  • آموزش جاوااسکریپت
٪۴۱
دوره اختصاصی INZIP

دورهٔ جامع HTML از صفر

آموزش حرفه ای HTML از صفر در ۱۶ ویدیو: سند، متن، لینک، تصویر، جدول، فرم، معنایی‌سازی، دسترس‌پذیری و سئو، تا پروژهٔ کامل صفحهٔ فروشگاه محصول.

تماشای آنلاین + دانلود دسترسی آنی و همیشگی به‌روزرسانی رایگان کیفیت Full HD
۹۹۰,۰۰۰ تومان ۵۹۰,۰۰۰ تومان سود شما ۴۰۰,۰۰۰ تومان
مشاهده سریال