التعامل مع الـ Date و Time

الدرس السابع والعشرون: التعامل مع الـ Date و Time

في JavaScript، يُعتبر التعامل مع التاريخ والوقت من المواضيع الأساسية التي تحتاج إليها العديد من التطبيقات. توفر JavaScript كائن Date لتمثيل وتخزين المعلومات الخاصة بالتاريخ والوقت. في هذا الدرس، سنتعرف على كيفية التعامل مع الـ Date، وكيفية تحويل التاريخ إلى صيغ مختلفة، بالإضافة إلى كيفية حساب الوقت المتبقي بين حدثين.

1. كيفية التعامل مع الوقت والتاريخ باستخدام Date

كائن Date في JavaScript هو كائن يُستخدم لتمثيل التاريخ والوقت، ويمكننا استخدامه لإنشاء كائنات تاريخية والقيام بعمليات حسابية عليها. هناك عدة طرق لإنشاء Date:

إنشاء كائن Date جديد

  • الطريقة الأولى: إنشاء Date مع التاريخ الحالي عند استدعاء new Date() بدون أي معلمات، يقوم الكائن بإنشاء تاريخ ووقت يمثلان الوقت الحالي. const currentDate = new Date(); console.log(currentDate); // سيعرض التاريخ والوقت الحالي
  • الطريقة الثانية: إنشاء Date مع تاريخ معين يمكنك إنشاء كائن Date بتحديد سنة، شهر، يوم، ساعة، دقيقة، ثانية، وحتى ميلي ثانية. const specificDate = new Date(2024, 0, 25); // يناير هو الشهر 0 console.log(specificDate); // سيعرض التاريخ 25 يناير 2024
  • الطريقة الثالثة: إنشاء Date باستخدام نص يمكن أيضًا إنشاء كائن Date باستخدام سلسلة نصية تمثل التاريخ والوقت. const dateFromString = new Date("2024-12-25T00:00:00"); console.log(dateFromString); // سيعرض التاريخ في التنسيق ISO 8601

طرق مختلفة للتعامل مع الـ Date

  • getFullYear(): لاسترجاع السنة. const year = currentDate.getFullYear(); console.log(year); // سيعرض السنة الحالية
  • getMonth(): لاسترجاع الشهر (ملاحظة: الشهر يبدأ من 0، لذا يناير = 0، فبراير = 1، وهكذا). const month = currentDate.getMonth(); console.log(month); // سيعرض الشهر الحالي (0 = يناير)
  • getDate(): لاسترجاع اليوم من الشهر. const dayOfMonth = currentDate.getDate(); console.log(dayOfMonth); // سيعرض اليوم من الشهر
  • getHours(): لاسترجاع الساعة. const hour = currentDate.getHours(); console.log(hour); // سيعرض الساعة الحالية
  • getMinutes(): لاسترجاع الدقائق. const minutes = currentDate.getMinutes(); console.log(minutes); // سيعرض الدقائق الحالية
  • getSeconds(): لاسترجاع الثواني. const seconds = currentDate.getSeconds(); console.log(seconds); // سيعرض الثواني الحالية

2. تحويل التاريخ إلى صيغ مختلفة

يمكنك تحويل كائن Date إلى صيغ مختلفة باستخدام عدة طرق مدمجة:

  • toLocaleDateString(): لتحويل التاريخ إلى سلسلة نصية وفقًا لإعدادات اللغة والمنطقة. const formattedDate = currentDate.toLocaleDateString('ar-EG'); // صيغة التاريخ بالعربية console.log(formattedDate); // 25/12/2024
  • toLocaleTimeString(): لتحويل الوقت إلى صيغة معتمدة على إعدادات اللغة والمنطقة. const formattedTime = currentDate.toLocaleTimeString('ar-EG'); // صيغة الوقت بالعربية console.log(formattedTime); // 12:30:45 ص (مثال)
  • toISOString(): لتحويل التاريخ إلى صيغة ISO 8601 (تُستخدم بشكل شائع في API). const isoDate = currentDate.toISOString(); console.log(isoDate); // 2024-12-25T00:00:00.000Z
  • toString(): لتحويل التاريخ إلى سلسلة نصية عادية. const dateString = currentDate.toString(); console.log(dateString); // "Wed Dec 25 2024 00:00:00 GMT+0200 (Eastern European Standard Time)"
  • toUTCString(): لتحويل التاريخ إلى صيغة UTC. const utcString = currentDate.toUTCString(); console.log(utcString); // "Wed, 25 Dec 2024 00:00:00 GMT"

3. التعامل مع الوقت المتبقي بين حدثين

لحساب الوقت المتبقي بين حدثين (مثل الفرق بين تاريخين)، يمكنك استخدام العمليات الحسابية مع كائن Date.

حساب الفرق بين تاريخين

يمكنك حساب الفرق بين تاريخين باستخدام البسط والمقام. مثال على ذلك هو حساب الفرق بين تاريخين بالميللي ثانية:

const startDate = new Date("2024-12-25T00:00:00");
const endDate = new Date("2025-01-01T00:00:00");

const timeDifference = endDate - startDate;  // الفرق بالميللي ثانية
console.log(timeDifference);  // سيتم عرض الفرق بالميللي ثانية

تحويل الفرق إلى وحدات زمنية

يمكنك تحويل الفرق بالميللي ثانية إلى أيام، ساعات، دقائق، وثواني:

const timeDifference = endDate - startDate;  // الفرق بالميللي ثانية

// حساب الأيام
const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24));

// حساب الساعات المتبقية بعد الأيام
const hours = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));

// حساب الدقائق المتبقية بعد الساعات
const minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60));

// حساب الثواني المتبقية بعد الدقائق
const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000);

console.log(`الوقت المتبقي: ${days} أيام, ${hours} ساعات, ${minutes} دقائق, ${seconds} ثواني`);

هذا الكود سيحسب الفرق بين التاريخين المعطين ويعرض الوقت المتبقي بوحدات الأيام، الساعات، الدقائق، والثواني.

الخلاصة

  • كائن Date في JavaScript يسمح بإنشاء ومعالجة التواريخ والأوقات بطرق مرنة.
  • يمكنك تحويل التاريخ إلى صيغ مختلفة مثل toLocaleDateString و toISOString.
  • لحساب الوقت المتبقي بين حدثين، يمكنك إجراء عمليات حسابية على كائنات Date للحصول على الفرق بينهما بالميللي ثانية وتحويله إلى أيام، ساعات، دقائق، وثواني.

التعامل مع التاريخ والوقت في JavaScript يعد أمرًا أساسيًا لبناء التطبيقات التي تحتاج إلى التفاعل مع الزمن، مثل التطبيقات التي تعرض مواعيد أو توقيتات أو حسابات زمنية.


اكتشاف المزيد من كود التطور

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك رد

Scroll to Top