🗓️ التعامل مع التاريخ والوقت في JavaScript: دليلك الشامل

اليوم سنتعلم كيفية التعامل مع التواريخ والأوقات في لغة JavaScript، وهو أمر أساسي في معظم التطبيقات التي نستخدمها يومياً.


📅 ما هو كائن Date؟

في JavaScript، يتم تمثيل التاريخ والوقت باستخدام كائن خاص يسمى Date. هذا الكائن يخزن معلومات دقيقة عن التاريخ والوقت، ويمنحنا العديد من الطرق (Methods) للتعامل مع هذه المعلومات.

// إنشاء كائن Date يمثل اللحظة الحالية
let now = new Date();
console.log(now); // يعرض التاريخ والوقت الحاليين

🔧 طرق إنشاء كائنات Date

هناك عدة طرق لإنشاء كائن Date، حسب احتياجك:

// 1. التاريخ والوقت الحاليين
let currentDate = new Date();

// 2. تاريخ محدد باستخدام نص
let specificDate = new Date("2024-12-25");

// 3. تاريخ محدد باستخدام أرقام (السنة، الشهر، اليوم)
// ملاحظة: الأشهر تبدأ من 0 (يناير = 0)
let customDate = new Date(2024, 11, 25); // 25 ديسمبر 2024

// 4. تاريخ ووقت محددين
let dateWithTime = new Date(2024, 11, 25, 15, 30, 0); // 25 ديسمبر 2024، 3:30 مساءً

📊 استخراج أجزاء التاريخ

الآن لنرى كيف يمكننا استخراج المعلومات من كائن Date:

let today = new Date();

// استخراج السنة
let year = today.getFullYear(); // 2024

// استخراج الشهر (من 0 إلى 11)
let month = today.getMonth(); // 0 = يناير، 11 = ديسمبر

// استخراج اليوم من الشهر (من 1 إلى 31)
let dayOfMonth = today.getDate();

// استخراج اليوم من الأسبوع (0 = الأحد، 6 = السبت)
let dayOfWeek = today.getDay();

// استخراج الساعات (من 0 إلى 23)
let hours = today.getHours();

// استخراج الدقائق (من 0 إلى 59)
let minutes = today.getMinutes();

// استخراج الثواني (من 0 إلى 59)
let seconds = today.getSeconds();

⏰ استخراج أجزاء الوقت

لنركز أكثر على طرق استخراج الوقت:

let now = new Date();

console.log("الساعة: " + now.getHours()); // الساعات
console.log("الدقائق: " + now.getMinutes()); // الدقائق
console.log("الثواني: " + now.getSeconds()); // الثواني
console.log("الميللي ثانية: " + now.getMilliseconds()); // الألف من الثانية

✏️ تعديل التاريخ والوقت

يمكننا أيضاً تعديل قيم التاريخ والوقت باستخدام طرق مشابهة:

let date = new Date();

// تعديل السنة
date.setFullYear(2025);

// تعديل الشهر
date.setMonth(5); // يونيو (تذكر: الأشهر تبدأ من 0)

// تعديل اليوم
date.setDate(15);

// تعديل الوقت
date.setHours(14);
date.setMinutes(30);
date.setSeconds(0);

console.log(date); // التاريخ والوقت الجديد

🎯 مثال عملي: عرض تاريخ بطريقة مقروءة

لنطبق ما تعلمناه في مثال عملي بسيط:

function displayFormattedDate() {
    let now = new Date();
    
    // أسماء الأشهر والأيام
    let months = ["January", "February", "March", "April", "May", "June",
                 "July", "August", "September", "October", "November", "December"];
    
    let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
    
    let dayName = days[now.getDay()];
    let day = now.getDate();
    let monthName = months[now.getMonth()];
    let year = now.getFullYear();
    let hours = now.getHours();
    let minutes = now.getMinutes();
    
    let formattedDate = `${dayName}، ${day} ${monthName} ${year} - ${hours}:${minutes}`;
    
    console.log("Current Date: " + formattedDate);
}

// استدعاء الدالة
displayFormattedDate();

💡 نصائح مهمة

  1. تذكر أن الأشهر تبدأ من 0: يناير = 0، ديسمبر = 11
  2. استخدم getFullYear() بدلاً من getYear(): لأن getYear() قديم وغير موثوق
  3. الوقت يعتمد على المنطقة الزمنية: الكائن Date يستخدم المنطقة الزمنية للمتصفح
  4. يمكنك استخدام Date.now(): للحصول على الوقت الحالي بالميللي ثانية دون إنشاء كائن