ไลบรารีนี้ใช้ตัวจัดรูปแบบและตัวแยกวิเคราะห์ที่กระชับสำหรับวันที่และวันที่-เวลา ISO 8601 มีไว้สำหรับใช้เป็นรูปแบบการแลกเปลี่ยน เช่น ใน CSV ที่มนุษย์สามารถอ่านได้ง่ายกว่าสตริงวันที่-เวลา ISO แบบเต็มที่ใช้โดย date .toISOString
วิธีใช้:
import { format , parse } from "isoformat" ;
กำหนดวันที่ รูปแบบ ( date ) ส่งคืนสตริง ISO 8601 UTC ที่สั้นที่สุดเทียบเท่า หาก วันที่ ไม่ใช่อินสแตนซ์ Date จะถือว่าเป็นตัวแทนของมิลลิวินาทีนับตั้งแต่ยุค 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 ) จะส่งคืนอินสแตนซ์ Date ที่เทียบเท่ากัน หาก สตริง ไม่ใช่สตริงวันที่หรือเวลา 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 แต่ก็เป็น อนุญาตที่นี่เนื่องจากได้รับการสนับสนุนอย่างกว้างขวางในการใช้งาน)