تطبق هذه المكتبة منسقًا ومحللًا موجزًا لتاريخ وأوقات التاريخ ISO 8601. إنه مخصص للاستخدام كتنسيق تبادل، على سبيل المثال في ملف CSV، وهو أكثر قابلية للقراءة من قبل الإنسان مقارنة بسلسلة التاريخ والوقت الكاملة الخاصة بـ ISO المستخدمة حسب التاريخ .toISOString.
للاستخدام:
import { format , parse } from "isoformat" ;
بالنظر إلى التاريخ، يقوم التنسيق ( date ) بإرجاع أقصر سلسلة مكافئة لـ ISO 8601 UTC. إذا لم يكن التاريخ مثيلًا للتاريخ، فمن المفترض أنه يمثل المللي ثانية منذ عصر UNIX. إذا لم يكن التاريخ تاريخًا صالحًا، فسيتم إرجاع القيمة الاحتياطية المحددة، والتي تكون القيمة الافتراضية غير محددة؛ إذا كان الاحتياطي دالة، فسيتم استدعاؤه لإنتاج قيمة احتياطية إذا لزم الأمر، ويتم تمرير التاريخ .
format ( new Date ( Date . UTC ( 2001 , 0 , 1 ) ) ) // "2001-01-01"
format ( new Date ( Date . UTC ( 2020 , 0 , 1 , 12 , 23 ) ) ) // "2020-01-01T12:23Z"
يمكن إرجاع النماذج التالية حسب التنسيق:
يمكن أيضًا تمثيل السنة YYYY بـ +YYYYYY أو -YYYYYY. لاحظ أنه على الرغم من أن YYYY وYYYY-MM عبارة عن سلاسل تاريخ صالحة وفقًا لمعيار ISO 8601، إلا أنه لا يتم إرجاع هذه النماذج أبدًا حسب التنسيق؛ يمكن بسهولة إساءة تفسير YYYY كرقم، وYYYY-MM... حسنًا، أعتقد أن هذا سيكون جيدًا، ولكن كان من الأسهل التوقف عند YYYY-MM-DD لجعل الأمر أكثر وضوحًا أنه كان تاريخًا.
بالنظر إلى تاريخ ISO 8601 أو سلسلة تاريخ/وقت، يُرجع التحليل ( string ) نسخة تاريخ مكافئة. إذا كانت السلسلة ليست سلسلة تاريخ أو وقت/تاريخ صالحة وفقًا لمعيار ISO 8601، فسيتم إرجاع القيمة الاحتياطية المحددة، والتي تكون القيمة الافتراضية غير محددة؛ إذا كان الاحتياطي دالة، فسيتم استدعاؤه لإنتاج قيمة احتياطية إذا لزم الأمر، ويتم تمرير السلسلة .
parse ( "2001-01-01" ) // new Date(Date.UTC(2001, 0, 1))
parse ( "2020-01-01T12:23Z" ) // new Date(Date.UTC(2020, 0, 1, 12, 23))
يتم قبول النماذج التالية عن طريق التحليل:
يمكن أيضًا تمثيل السنة YYYY بـ +YYYYYY أو -YYYYYY. يمكن تمثيل المنطقة الزمنية Z كحرف Z حرفيًا للتوقيت العالمي المنسق (UTC)، أو على شكل +HH:MM، أو -HH:MM، أو +HHMM، أو -HHMM. (إزاحة المنطقة الزمنية المكونة من رقمين +HH أو -HH غير مدعومة؛ على الرغم من أنها جزء من ISO 8601، إلا أن هذا التنسيق لم يتعرف عليه Chrome أو Node. وعلى الرغم من أن ISO 8601 لا يسمح بالمنطقة الزمنية -00:00، إلا أنه مسموح به هنا لأنه مدعوم على نطاق واسع في التطبيقات.)