🗓️ التعامل مع التواريخ والوقت في JavaScript: دليلك الشامل
مرحباً بك في عالم التواريخ والوقت في JavaScript! في هذا الدرس، سنتعلم كيفية استخدام كائن Date المدمج في اللغة لإنشاء التواريخ، وقراءة أجزائها (مثل اليوم والشهر والسنة)، وإجراء عمليات أساسية عليها. هذه المهارة أساسية لأي تطبيق يحتاج إلى عرض التواريخ أو حساب الفترات الزمنية.
🤔 ما هو كائن Date؟
كائن Date في JavaScript هو أداة قوية تسمح لك بالتعامل مع جميع المعلومات المتعلقة بالتاريخ والوقت. تخيله كساعة ذكية و تقويم داخل برنامجك! يمكنك من خلاله:
- معرفة التاريخ والوقت الحاليين.
- إنشاء تواريخ محددة (مثل تاريخ ميلادك).
- استخراج معلومات مثل اليوم، الشهر، السنة، الساعة، الدقيقة.
- إجراء حسابات بسيطة على التواريخ.
🛠️ كيفية إنشاء كائن Date جديد
لبدء العمل مع التواريخ، نحتاج أولاً إلى إنشاء نسخة (Instance) من كائن Date. نستخدم الكلمة المفتاحية new Date() لهذا الغرض.
1. التاريخ والوقت الحالي
الطريقة الأكثر شيوعاً هي إنشاء كائن يحتوي على التاريخ والوقت الحاليين حسب جهاز المستخدم (الكمبيوتر أو الهاتف).
let now = new Date();
console.log(now); // Something like: 2024-08-05T10:30:15.123Z
2. إنشاء تاريخ محدد
يمكننا إنشاء تاريخ لوقت معين بتمرير المعلمات إلى new Date().
// إنشاء تاريخ لـ 1 يناير 2023
let specificDate1 = new Date(2023, 0, 1); // الشهر يبدأ من 0 (0 = يناير)
console.log(specificDate1);
// إنشاء تاريخ وتوقيت محدد: 15 يوليو 2024، الساعة 14:30
let specificDate2 = new Date(2024, 6, 15, 14, 30); // (سنة، شهر، يوم، ساعة، دقيقة)
console.log(specificDate2);
// إنشاء تاريخ من نص (يجب أن يكون التنسيق قياسياً)
let dateFromString = new Date("2024-12-25");
console.log(dateFromString);
🔍 استخراج أجزاء التاريخ والوقت (الدوال GET)
بعد إنشاء كائن Date، كيف نعرف اليوم أو الشهر أو الساعة؟ لدينا مجموعة من الدوال تبدأ بكلمة get تساعدنا في ذلك.
let today = new Date();
// استخراج أجزاء التاريخ
let year = today.getFullYear(); // السنة (مثلاً 2024)
let month = today.getMonth(); // الشهر (من 0 إلى 11)
let date = today.getDate(); // اليوم في الشهر (من 1 إلى 31)
let day = today.getDay(); // اليوم في الأسبوع (0 = الأحد، 1 = الاثنين... 6 = السبت)
// استخراج أجزاء الوقت
let hours = today.getHours(); // الساعة (من 0 إلى 23)
let minutes = today.getMinutes(); // الدقائق (من 0 إلى 59)
let seconds = today.getSeconds(); // الثواني (من 0 إلى 59)
let milliseconds = today.getMilliseconds(); // الألف من الثانية
console.log("السنة:", year);
console.log("الشهر (رقم):", month); // تذكر: يناير = 0
console.log("اليوم في الشهر:", date);
console.log("الساعة الآن:", hours);
ملاحظة مهمة: getMonth() تُرجع رقماً من 0 إلى 11. الرقم 0 يمثل شهر يناير، والرقم 11 يمثل شهر ديسمبر. هذا أمر شائع يجب أن تعتاد عليه.
✏️ تعديل أجزاء التاريخ والوقت (الدوال SET)
ماذا لو أردنا تغيير قيمة معينة داخل كائن Date؟ لدينا دوال مقابلة تبدأ بكلمة set.
let myDate = new Date(2024, 0, 1); // 1 يناير 2024
console.log("التاريخ الأصلي:", myDate);
// تغيير السنة إلى 2025
myDate.setFullYear(2025);
console.log("بعد تغيير السنة:", myDate);
// تغيير الشهر إلى مايو (الشهر 4 لأن العد يبدأ من 0)
myDate.setMonth(4);
console.log("بعد تغيير الشهر:", myDate);
// تغيير اليوم في الشهر إلى 15
myDate.setDate(15);
console.log("بعد تغيير اليوم:", myDate);
// يمكنك تغيير الوقت أيضاً
myDate.setHours(10);
myDate.setMinutes(45);
console.log("بعد تغيير الوقت:", myDate);
⏱️ تحويل التاريخ إلى تنسيق يمكن قراءته
عند طباعة كائن Date مباشرة، قد تحصل على تنسيق طويل. هناك عدة طرق لتحويله إلى نص مفهوم.
let now = new Date();
// 1. toString(): يعرض التاريخ والوقت كاملين بتنسيق قابل للقراءة (حسب المنطقة الزمنية)
console.log(now.toString()); // مثال: "Mon Aug 05 2024 13:45:22 GMT+0300 (توقيت شرق أوروبا الصيفي)"
// 2. toDateString(): يعرض جزء التاريخ فقط بشكل مقروء
console.log(now.toDateString()); // مثال: "Mon Aug 05 2024"
// 3. toTimeString(): يعرض جزء الوقت فقط بشكل مقروء
console.log(now.toTimeString()); // مثال: "13:45:22 GMT+0300 (توقيت شرق أوروبا الصيفي)"
// 4. toISOString(): تنسيق قياسي عالمي (ISO) - مفيد جداً للتخزين أو الإرسال للخوادم
console.log(now.toISOString()); // مثال: "2024-08-05T10:45:22.123Z" (توقيت UTC)
📝 مثال تطبيقي بسيط: عرض تاريخ وترحيب
لنطبق ما تعلمناه في مثال عملي بسيط يعرض رسالة ترحيب تتضمن التاريخ والوقت الحاليين.
// 1. إنشاء كائن للتاريخ والوقت الحالي
let currentMoment = new Date();
// 2. استخراج المعلومات التي نحتاجها
let currentHour = currentMoment.getHours();
let currentMinutes = currentMoment.getMinutes();
let currentDate = currentMoment.toDateString();
// 3. تكوين رسالة ترحيب ذكية بناءً على الوقت
let greeting;
if (currentHour < 12) {
greeting = "صباح الخير! ☀️";
} else if (currentHour < 18) {
greeting = "مساء الخير! 🌤️";
} else {
greeting = "مساء الخير! 🌙";
}
// 4. عرض النتيجة للمستخدم
console.log(greeting);
console.log("التاريخ اليوم هو:", currentDate);
console.log("الوقت الآن:", currentHour + ":" + (currentMinutes < 10 ? '0' : '') + currentMinutes);
// الشرط السابق يضيف صفراً أمام الدقائق إذا كانت أقل من 10 (مثلاً 09 بدلاً من 9)
🎯 ملخص الدرس
لقد تعلمت في هذا الدرس الأساسيات القوية للتعامل مع التواريخ في JavaScript:
- كيفية إنشاء كائن
Dateللوقت الحالي أو تاريخ محدد. - استخدام دوال
get(مثلgetFullYear،getHours) لاستخراج أجزاء التاريخ والوقت. - استخدام دوال
set(مثلsetFullYear،setHours) لتعديل هذه الأجزاء. - تحويل كائن
Dateإلى نصوص مقروءة باستخدامtoString()وtoDateString()وغيرها.
تذكر أن الشهر يبدأ عدده من 0 (يناير) وينتهي عند 11 (ديسمبر).
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال