บทความทั้งหมด

ISO 8601 Duration: วิธีเขียนระยะเวลาในรูปแบบมาตรฐาน

มาตรฐาน ISO 8601 ไม่ได้กำหนดแค่รูปแบบวันที่ แต่ยังกำหนดรูปแบบการเขียนระยะเวลาด้วย — สตริงอย่าง PT1H30M ซึ่งอธิบาย "1 ชั่วโมง 30 นาที" อย่างชัดเจนและอ่านได้ด้วยเครื่อง

โครงสร้างของรูปแบบ

สตริงเริ่มต้นด้วยตัวอักษร P (period) เสมอ องค์ประกอบวันที่ (ปี เดือน วัน) ตามหลัง P ทันที ในขณะที่องค์ประกอบเวลา (ชั่วโมง นาที วินาที) ตามหลังตัวอักษร T ซึ่งแยกส่วนวันที่ออกจากส่วนเวลา ตัวอย่างเช่น P2DT4H หมายถึง "2 วันและ 4 ชั่วโมง"

เหตุใดจึงต้องมีตัวอักษร T

หากไม่มีตัวคั่น T ตัวอักษร M จะคลุมเครือ — เพราะหมายถึงทั้งเดือน (ในส่วนวันที่) และนาที (ในส่วนเวลา) ดังนั้น P1M จึงหมายถึง "1 เดือน" ในขณะที่ PT1M หมายถึง "1 นาที"

ทำไมแท็กความยาวพอดแคสต์ไม่ใช่ ISO 8601

ฟีด RSS ของพอดแคสต์ใช้แท็ก <itunes:duration> แต่แท็กนี้มักเก็บค่าเป็นรูปแบบ HH:MM:SS หรือจำนวนวินาทีล้วน ๆ ไม่ใช่ไวยากรณ์ ISO 8601 อย่าง PT1H30M ดังนั้นหากแอปพอดแคสต์ต้องรวมข้อมูลจากฟีด RSS เข้ากับ API อื่นที่ใช้รูปแบบ ISO 8601 duration ก็ต้องแปลงรูปแบบให้ตรงกันก่อนเสมอ ทั้งสองแบบไม่สามารถใช้แทนกันได้โดยตรง

ทำไมต้องใช้สิ่งนี้

  • ถอดรหัสระยะเวลาของวิดีโอหรือกิจกรรมจากการตอบกลับของ API ภายนอก
  • สร้างสตริง ISO 8601 duration ที่ถูกต้องสำหรับ API หรือ data feed ของคุณเอง
  • แปลงระยะเวลาระหว่างรูปแบบที่มนุษย์อ่านได้กับสัญลักษณ์ ISO ที่เครื่องอ่านได้

วินาทีทศนิยมในสัญกรณ์

มาตรฐาน ISO 8601 อนุญาตให้มีส่วนทศนิยมได้เฉพาะในองค์ประกอบสุดท้าย (เล็กที่สุด) ของสตริงเท่านั้น — ตัวอย่างเช่น PT1.5S หมายถึง "1.5 วินาที" และ PT1H30.5M หมายถึง "1 ชั่วโมง 30.5 นาที" ส่วนทศนิยมในองค์ประกอบอื่นที่ไม่ใช่ตัวสุดท้ายไม่ได้ถูกกำหนดไว้ในมาตรฐานนี้

ลองใช้เครื่องมือ