نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
JS

منهج JavaScript

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج JavaScript/التعامل مع التواريخ والوقت (Dates & Time)

التعامل مع التواريخ والوقت (Dates & Time)

date javascriptالتواريخ في جافاسكريبتgetMonth getFullYeartoLocaleDateStringحساب الفرق بين تاريخين

جدول مرجعي سريع

1
الدالةالوظيفة
getFullYear()استخراج السنة
getMonth()استخراج الشهر (0-11)
getDate()استخراج يوم الشهر
getDay()استخراج يوم الأسبوع (0-6)
getTime()المللي ثانية منذ 1970
toLocaleDateString()عرض التاريخ بتنسيق محلي

الشرح

يوفر كائن Date المدمج في جافاسكريبت وسيلة للتعامل مع التواريخ والأوقات. لإنشاء كائن يمثل اللحظة الحالية، تستخدم new Date() بدون وسائط. ويمكن أيضاً إنشاء تاريخ محدد عبر تمرير السنة والشهر واليوم — مع تنبيه مهم: الأشهر في جافاسكريبت تبدأ فهرستها من صفر، أي أن يناير هو 0 وديسمبر هو 11، وهذا مصدر شائع جداً للأخطاء عند المبتدئين.

يوفر كائن Date دوالاً لاستخراج أجزاء التاريخ: getFullYear() للسنة، getMonth() للشهر (بفهرسة تبدأ من صفر كما ذكرنا)، getDate() ليوم الشهر، getDay() ليوم الأسبوع (0 للأحد حتى 6 للسبت)، وgetHours وgetMinutes وgetSeconds للوقت. توجد أيضاً دوال setter مقابلة (setFullYear, setMonth...) لتعديل أجزاء التاريخ بعد الإنشاء.

من أكثر الاستخدامات شيوعاً هو getTime() الذي يُعيد عدد المللي ثانية منذ منتصف ليلة 1 يناير 1970 (يُسمى Unix Epoch) — وهذا الرقم مفيد جداً لحساب الفرق بين تاريخين بطرح رقمين من بعضهما، ثم تحويل الناتج (بالمللي ثانية) إلى ثوانٍ أو دقائق أو أيام حسب الحاجة.

للتعامل مع التنسيق (Formatting) بشكل احترافي وعرض التواريخ بصيغ مقروءة بلغات مختلفة، توفر جافاسكريبت الحديثة toLocaleDateString() وtoLocaleTimeString()، واللتان تدعمان تمرير رمز اللغة (مثل "ar-EG" للعربية) لعرض التاريخ بالتنسيق المحلي المناسب تلقائياً دون الحاجة لمكتبات خارجية للحالات البسيطة.

الصياغة (Syntax)

syntax
1const الآن = new Date(); // اللحظة الحالية
2const تاريخ_محدد = new Date(2024, 0, 15); // 15 يناير 2024 (الشهر 0 = يناير)
3
4الآن.getFullYear(); // السنة
5الآن.getMonth(); // الشهر (0-11)
6الآن.getDate(); // يوم الشهر
7الآن.getDay(); // يوم الأسبوع (0-6)

أمثلة عملية

مثال 1: حساب الفرق بين تاريخين بالأيام

حساب الفرق بين تاريخين بالأيام
1// حساب الفرق بين تاريخين بالأيام
2const تاريخ1 = new Date(2024, 0, 1);
3const تاريخ2 = new Date(2024, 2, 15);
4
5const الفرق_بالميلي_ثانية = تاريخ2.getTime() - تاريخ1.getTime();
6const الفرق_بالأيام = الفرق_بالميلي_ثانية / (1000 * 60 * 60 * 24);
7console.log(الفرق_بالأيام); // 74

مثال 2: تنسيق التاريخ محلياً باللغة العربية

تنسيق التاريخ محلياً باللغة العربية
1// عرض التاريخ بتنسيق محلي عربي
2const اليوم = new Date();
3console.log(اليوم.toLocaleDateString("ar-EG")); // مثال: ١٥‏/٦‏/٢٠٢٦
4console.log(اليوم.toLocaleDateString("ar-EG", {
5 weekday: "long",
6 year: "numeric",
7 month: "long",
8 day: "numeric",
9}));

نصائح احترافية

  • —تذكّر دائماً: الأشهر في Date تبدأ من صفر — يناير = 0 وديسمبر = 11، خطأ شائع جداً عند المبتدئين.
  • —استخدم getTime() للحصول على رقم قابل للطرح والمقارنة بسهولة بين تاريخين.
  • —toLocaleDateString("ar-EG") يمنحك تنسيقاً عربياً جاهزاً بدون أي مكتبة خارجية.
  • —لحسابات تواريخ معقدة (منطقة زمنية، تكرار، إلخ) في مشاريع حقيقية كبيرة، تُفضَّل مكتبات متخصصة مثل date-fns أو Day.js.

الدرس السابق

التعامل مع الأعداد والعمليات الرياضية (Number & Math Methods)

الدرس التالي

ما هو الـ DOM؟

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر