Moment.js ประกาศหยุดพัฒนา แนะนำให้ใช้ไลบรารีอื่นทดแทน

by lew
19 September 2020 - 07:28

Moment.js ไลบรารีแสดงวันและเวลาในภาษาจาวาสคริปต์ที่ได้รับความนิยมสูง (ดาวบน GitHub มากกว่า 44,000 ดาว และยอดดาวน์โหลดสัปดาห์ละ 12 ล้านครั้ง) ประกาศหยุดพัฒนาโดยระบุเหตุผลว่าโครงสร้างเดิมไม่เหมาะกับนักพัฒนาใหม่ และตัวจาวาสคริปต์เองก็มีออปเจก์ Intl เพื่อรองรับวิธีการแสดงวันและเวลาแล้ว แต่ Moment.js ไม่รองรับ

กระบวนการหยุดพัฒนาของ Moment.js จะแก้ไขช่องโหว่ร้ายแรงต่อไป และจะเพิ่ม timezone ใหม่ๆ ตามฐานข้อมูลของ IANA แต่จะไม่มีการเพิ่มฟีเจอร์ใดๆ รวมถึงไม่มีการแก้ไขพฤติกรรมแปลกๆ (quirk) และไม่มีการออกเวอร์ชั่น 3 อีก

ทาง Moment.js แนะนำไลบรารีทดแทนหลายตัว ได้แก่

  • Luxon ไลบรารีที่ใช้ข้อมูล locale และ timezone จากออปเจกต์ Intl แต่รองรับ IE 10 ขึ้นไปเท่านั้น
  • Day.js ใช้ timezone จากออปเจกต์ Intl แต่ใช้ข้อมูล locale จากไฟล์ของตัวเอง ข้อดีคือต้องการ IE 8 ขึ้นไป
  • date.fns ไลบรารีประมวลข้อมูลวันเวลา ใช้ timezone จากออปเจกต์ Intl โดยต้องลงไลบรารีเพิ่ม แต่ใช้ข้อมูล locale จากไฟล์ของตัวเอง
  • js-Joda ไลบรารีพอร์ตมาจากไลบรารี java.time ที่ใช้ตั้งแต่ Java SE 8

ทางเลือกสุดท้ายคือการไม่ใช้ไลบรารีเลย โดยออปเจกต์ Intl เองก็มีฟีเจอร์ที่ใช้งานกันบ่อยๆ หลายอย่าง แต่ปัญหาคือการอิมพลีเมนต์หลายที่ไม่ครบตามสเปค เช่น Node.js เอง อีกทางคือ ECMA กำลังออกมาตรฐาน Temporal ที่รองรับความต้องการหลายกรณีขึ้น แม้ตอนนี้จะยังไม่ควรใช้งานบนโปรดักชั่น

ที่มา - Moment.js

Blognone Jobs Premium