Tags:
Node Thumbnail

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

No Description

Get latest news from Blognone

Comments

By: deawx on 19 September 2020 - 21:23 #1176772

ร้องเหยดดด ดังมาก

By: K_AViar
Windows PhoneUbuntuWindowsIn Love
on 19 September 2020 - 22:52 #1176783

เห็นข่าวนี้แล้วตกใจมาก ปกติก็ใช้ Moment.js เป็นประจำอยู่แล้ว

By: sabayjoo_ on 19 September 2020 - 23:13 #1176789

อ่านข่าวนี้เศร้า แต่ไม่เป็นไร ได้ตัวใหม่ล่ะ day.js เบาดีครับ ย้ายๆ

By: blackdoor on 20 September 2020 - 00:10 #1176797
blackdoor's picture

ใช้ day.js แทนนานแล้วครับ 👍

By: UltimaX on 20 September 2020 - 12:39 #1176844

พักหลังมาเห็นบางคนเปลี่ยนไปใช้ Luxon กันเหมือนกัน แต่ถึงจะหยุดพัฒนาแต่ Moment น่าจะใช้ต่อได้หลายปีนะ
แต่พวก addons plugin น่าจะเปลี่ยนกัน

By: genocide on 21 September 2020 - 09:49 #1176887
genocide's picture

ทำไมไม่ทำ moment.js 3 แบบยกเครื่องใหม่ ติดชื่อนี้ไปแล้ว