البرمجة

تحويل سلسلة زمنية إلى تاريخ في JavaScript

في بداية الأمر، يتطلب تحويل السلسلة النصية المعطاة، التي تبدو على النحو التالي: ‘20160313023000’، إلى تاريخ صالح في تنسيق ‘yyyyMMddHHmmss’، معالجة خاصة نظرًا لأن التاريخ الذي تمثله السلسلة قد يكون غير صالح بسبب وجود معلومات عن التوقيت الصيفي. للقيام بذلك، يمكن استخدام الدوال المتاحة في لغة الجافا سكريبت.

أولاً، يجب تحويل السلسلة النصية إلى تاريخ صالح. يمكن استخدام الدالة substring() لاستخراج الأجزاء المختلفة من السلسلة النصية، ومن ثم استخدامها لإنشاء تاريخ.

على سبيل المثال، إذا كانت السلسلة النصية المعطاة تمثل التاريخ في تنسيق ‘yyyyMMddHHmmss’، يمكننا استخراج السنة، الشهر، اليوم، الساعة، الدقيقة، والثانية عن طريق استخدام substring()، ومن ثم استخدامها لإنشاء كائن تاريخ جديد.

ثم، بعد الحصول على تاريخ صالح، يمكن استخدام الدوال المتاحة في لغة الجافا سكريبت للتحكم في أي تعديلات ضرورية. على سبيل المثال، يمكن استخدام new Date() لإنشاء كائن تاريخ، ثم التحقق من صحة التاريخ المنشأ للتأكد من أنه صحيح.

وبهذا، يمكن تطبيق خوارزمية مشابهة لما يلي:

javascript
function parseDateString(input) { // Extract year, month, day, hour, minute, second from the input string var year = input.substring(0, 4); var month = input.substring(4, 6); var day = input.substring(6, 8); var hour = input.substring(8, 10); var minute = input.substring(10, 12); var second = input.substring(12, 14); // Create a new Date object var date = new Date(year, month - 1, day, hour, minute, second); // Check if the created date object is valid if (isNaN(date.getTime())) { // Handle invalid date return "Invalid date"; } else { // Format the date as 'yyyyMMddHHmmss' var formattedDate = date.getFullYear().toString().padStart(4, '0') + (date.getMonth() + 1).toString().padStart(2, '0') + date.getDate().toString().padStart(2, '0') + date.getHours().toString().padStart(2, '0') + date.getMinutes().toString().padStart(2, '0') + date.getSeconds().toString().padStart(2, '0'); return formattedDate; } } // Example usage var inputString = '20160313023000'; var result = parseDateString(inputString); console.log(result); // Output: '20160313023000' (if the input date is valid)

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

المزيد من المعلومات

بالطبع، سأزيد من التفصيل فيما يلي:

عند تحليل سلسلة النص الزمنية المعطاة، والتي تتكون من 14 حرفًا، يجب الانتباه إلى تنسيق الوقت الذي يتضمن السنة (4 أحرف)، الشهر (2 أحرف)، اليوم (2 أحرف)، الساعة (2 أحرف)، الدقيقة (2 أحرف)، والثانية (2 أحرف). يجب التأكد من استخراج كل جزء بشكل صحيح ودقيق.

عند استخدام دالة substring()، يجب أن يتم تحديد المواقع بشكل صحيح، حيث تبدأ العدادات في لغة الجافا سكريبت من الصفر. على سبيل المثال، السنة تبدأ من الفهرس 0 وتستمر لمدة 4 أحرف، وهكذا.

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

يجب أيضًا مراعاة أن new Date() قد تقوم تلقائيًا بتعديل التاريخ في حال كانت السلسلة النصية تمثل تاريخًا غير صالحًا، مثل التاريخ الذي قد يكون به معلومات خاصة بالتوقيت الصيفي.

في النهاية، بعد إنشاء كائن التاريخ، يمكن استخدام دوال التنسيق المتاحة في لغة الجافا سكريبت، مثل getFullYear()، getMonth()، getDate()، getHours()، getMinutes()، و getSeconds()، للحصول على قيم كل جزء من التاريخ، ثم تنسيقها بالشكل المطلوب.

هذه الخطوات الإضافية تعزز فهم العملية بشكل أعمق وتوضح كيفية التعامل مع تحويل السلسلة النصية المعطاة إلى تاريخ صالح في لغة الجافا سكريبت.

زر الذهاب إلى الأعلى