كيفية الحصول بسهولة على الفرق بين تاريخين في JavaScript

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

نظرة عامة على المشكلة

تخيل أنك تعمل على تطوير تطبيق يسمح للمستخدمين بتحديد الأحداث. يختار المستخدمون تاريخ بدء لحدث، وتريد ملء تاريخ الانتهاء تلقائيًا. ومع ذلك، أنت غير متأكد من كيفية قياس الفرق بين تاريخ البدء وتاريخ الانتهاء، وكيفية تطبيق هذا الفرق لإنشاء تاريخ انتهاء جديد.

تحليل الحل

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

الخطوة 1: الحصول على الوقت بالمللي ثانية

في JavaScript، يمكن تحويل التواريخ إلى تنسيق رقمي يمثل عدد المللي ثانية منذ بداية العهد (1 يناير 1970). يمكنك القيام بذلك باستخدام طريقة getTime() أو باستخدام التاريخ مباشرة في تعبير عددي.

الخطوة 2: حساب الفرق

لإيجاد الفرق بين تاريخين، ما عليك سوى طرح تاريخ البداية من تاريخ النهاية:

var oldBegin = ...; // التاريخ المحدد في البداية
var oldEnd = ...;   // التاريخ المحدد في البداية

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

الخطوة 3: إنشاء تاريخ انتهاء جديد

مع حساب الفرق، يمكنك الآن إنشاء تاريخ جديد. إليك كيفية القيام بذلك:

var newBegin = ...; // تاريخ البدء الذي اختاره المستخدم

// حساب تاريخ انتهاء جديد
var newEnd = new Date(newBegin.getTime() + (oldEnd.getTime() - oldBegin.getTime()));

شرح حسابات التاريخ

  • مثيلات التاريخ: oldBegin و oldEnd و newBegin هي مثيلات لكائن Date.
  • المشغلين في JavaScript: عندما تستخدم مشغلات + أو - على كائنات Date، يقوم JavaScript تلقائيًا بتحويلها إلى قيمها الرقمية، بفضل طريقة valueOf(). هذا يعني:
    • date.getTime() تعادل date.valueOf().
    • كلاهما يعطي نفس التمثيل الرقمي للتاريخ بالمللي ثانية.

الخاتمة

باستخدام الطريقة المذكورة أعلاه، يمكنك بشكل فعال تعديل كائنات التاريخ في JavaScript لحساب الفرق بين تاريخين وإنشاء مثيلات جديدة من التواريخ حسب الحاجة لتطبيقاتك. هذا يمكّن وظائف ديناميكية تعزز تجربة المستخدم، خصوصًا عند إعداد الأحداث وإدارة الإطارات الزمنية.

لا تتردد في استخدام هذا الدليل في مساعي تطويرك، مما يضمن أن تطبيقاتك تتعامل مع التواريخ بسهولة!