تاريخ 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
تواريخ مقبض في التطبيق الخاص بك.
حتى المرة القادمة ، حافظ على سلامتك واستمر في العمل.