تاريخ JavaScript الآن - كيفية الحصول على التاريخ الحالي في JavaScript

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

قد يكون التعامل مع تنسيق التاريخ والطوابع الزمنية مرهقًا. في هذا الدليل ، ستتعلم كيفية الحصول على التاريخ الحالي بتنسيقات مختلفة في JavaScript.

كائن تاريخ جافا سكريبت

يحتوي JavaScript على Dateكائن مدمج يخزن التاريخ والوقت ويوفر طرقًا للتعامل معهم.

لإنشاء مثيل جديد Dateللكائن ، استخدم newالكلمة الأساسية:

const date = new Date();

و Dateجوه يحتوي على Numberأنه يمثل ميلي ثانية مرت منذ عصر، وهذا هو 1 يناير 1970.

يمكنك تمرير سلسلة تاريخ إلى Dateالمُنشئ لإنشاء كائن للتاريخ المحدد:

const date = new Date('Jul 12 2011');

للحصول على السنة الحالية ، استخدم getFullYear()طريقة المثيل Dateللكائن. و getFullYear()الأسلوب بإرجاع سنة من التاريخ المحدد في Dateالمنشئ:

const currentYear = date.getFullYear(); console.log(currentYear); //2020

وبالمثل ، هناك طرق للحصول على اليوم الحالي من الشهر والشهر الحالي:

const today = date.getDate(); const currentMonth = date.getMonth() + 1; 

تقوم getDate()الطريقة بإرجاع اليوم الحالي من الشهر (1-31).

تقوم getMonth()الطريقة بإرجاع شهر التاريخ المحدد. نقطة واحدة يجب ملاحظتها حول getMonth()الطريقة هي أنها تُرجع قيمًا مفهرسة 0 (0-11) حيث يكون 0 لشهر يناير و 11 لشهر ديسمبر. ومن ثم إضافة 1 لتطبيع قيمة الشهر.

التاريخ الآن

now()هي طريقة ثابتة Dateللكائن. تقوم بإرجاع القيمة بالمللي ثانية التي تمثل الوقت المنقضي منذ العصر. يمكنك تمرير الميلي ثانية التي يتم إرجاعها من now()الطريقة إلى Dateالمُنشئ لإنشاء مثيل Dateلكائن جديد :

const timeElapsed = Date.now(); const today = new Date(timeElapsed);

تنسيق التاريخ

يمكنك تنسيق التاريخ بتنسيقات متعددة (GMT و ISO وما إلى ذلك) باستخدام طرق Dateالكائن.

و toDateString()الأسلوب بإرجاع التاريخ في شكل مقروء الإنسان:

today.toDateString(); // "Sun Jun 14 2020"

تقوم toISOString()الطريقة بإرجاع التاريخ الذي يلي التنسيق الموسع ISO 8601:

today.toISOString(); // "2020-06-13T18:30:00.000Z"

و toUTCString()الأسلوب بإرجاع التاريخ في شكل التوقيت UTC:

today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT"

و toLocaleDateString()الأسلوب بإرجاع التاريخ في شكل الحساسة للمحلة:

today.toLocaleDateString(); // "6/14/2020"

يمكنك العثور على المرجع الكامل Dateللطرق في وثائق MDN.

وظيفة منسق التاريخ المخصص

بصرف النظر عن التنسيقات المذكورة في القسم أعلاه ، قد يكون لتطبيقك تنسيق مختلف للبيانات. يمكن أن يكون بشكل yy/dd/mmأو yyyy-dd-mmشكل ، أو شيء مشابه.

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

لذلك في هذا القسم ، دعنا ننشئ وظيفة الأداة التي ستعيد التاريخ بالتنسيق المحدد في وسيطة الوظيفة:

const today = new Date(); function formatDate(date, format) { // } formatDate(today, 'mm/dd/yy');

تحتاج إلى استبدال السلاسل "mm" و "dd" و "yy" بقيم الشهر واليوم والسنة من سلسلة التنسيق التي تم تمريرها في الوسيطة.

للقيام بذلك ، يمكنك استخدام replace()الطريقة الموضحة أدناه:

format.replace('mm', date.getMonth() + 1);

لكن هذا سيؤدي إلى الكثير من تسلسل الأساليب ويجعل من الصعب الحفاظ عليها أثناء محاولتك جعل الوظيفة أكثر مرونة:

format.replace('mm', date.getMonth() + 1) .replace('yy', date.getFullYear()) .replace('dd', date.getDate());

بدلاً من عمليات التسلسل ، يمكنك الاستفادة من التعبير النمطي باستخدام replace()الطريقة.

قم أولاً بإنشاء كائن يمثل زوجًا من القيمة الرئيسية للسلسلة الفرعية والقيمة الخاصة بها:

const formatMap = { mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() };

بعد ذلك ، استخدم التعبير العادي لمطابقة السلاسل واستبدالها:

formattedDate = format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]);

تبدو الوظيفة الكاملة كما يلي:

function formatDate(date, format) { const map = { mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() } return format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]) }

يمكنك أيضًا إضافة القدرة على تنسيق الطوابع الزمنية في الوظيفة.

استنتاج

آمل أن يكون لديك الآن فهم أفضل Dateللكائن في JavaScript. يمكنك أيضا استخدام طرف ثالث المكتبات الأخرى مثل datesjو momentتواريخ مقبض في التطبيق الخاص بك.

حتى المرة القادمة ، حافظ على سلامتك واستمر في العمل.