لا يحدّد معيار ISO 8601 صيغة التواريخ فقط، بل أيضًا صيغة كتابة المدد الزمنية — سلسلة نصية مثل PT1H30M تصف بوضوح وبشكل قابل للقراءة آليًا "ساعة و30 دقيقة".
بنية الصيغة
تبدأ السلسلة دائمًا بالحرف P (period). تأتي مكوّنات التاريخ (السنوات والأشهر والأيام) مباشرة بعد P، بينما تأتي مكوّنات الوقت (الساعات والدقائق والثواني) بعد الحرف T الذي يفصل جزء التاريخ عن جزء الوقت. مثلًا، تعني P2DT4H "يومان و4 ساعات".
لماذا نحتاج الحرف T
دون الفاصل T، سيكون الحرف M غامضًا — فهو يدل على الأشهر (في جزء التاريخ) والدقائق (في جزء الوقت) معًا. لذا تعني P1M "شهر واحد"، بينما تعني PT1M "دقيقة واحدة".
خاصية DURATION في ملفات التقويم iCalendar
معيار iCalendar (RFC 5545)، الذي تعتمد عليه ملفات .ics المستخدمة في Outlook وGoogle Calendar وتطبيقات تقويم أخرى كثيرة، يستخدم خاصية DURATION بنفس صيغة ISO 8601 لتحديد طول حدث بدلًا من تحديد وقت انتهائه مباشرة — فحدث مدته ساعة ونصف يُكتب داخل الملف كـDURATION:PT1H30M.
لماذا نحتاج هذا
- فكّ مدة فيديو أو حدث من استجابة واجهة API خارجية.
- إنشاء سلسلة مدة ISO 8601 صحيحة لواجهة API أو تغذية بيانات خاصة بك.
- تحويل المدد بين صيغة قابلة للقراءة البشرية وترميز ISO الآلي.
الثواني الكسرية في الترميز
يسمح معيار ISO 8601 بجزء عشري فقط في المكوّن الأخير (الأصغر) من النص — مثلًا، تعني PT1.5S "1.5 ثانية"، وتعني PT1H30.5M "ساعة و30.5 دقيقة". لا ينص المعيار على جزء عشري في أي مكوّن آخر غير الأخير.