วันพฤหัสบดีที่ 8 กุมภาพันธ์ พ.ศ. 2561

วิธีแก้ iOS Safari Javascript New Date แล้วมีค่าเป็น NaN

วันนี้เจอปัญหาที่แปลกประหลาดของ iOS Safari ที่ไม่สามารถ new Date() ออกมาได้ มันกลายเป็นค่า NaN (Not a number) ซะอย่างงั้น

ลองค้นดูก็เจอว่ามันเป็นเฉพาะ iOS Safari จริงๆ เจอวิธีแก้อยู่หลายอัน บางคนก็บอกให้ไปใช้ DateJS ช่วยเอาเลย แต่มันก็ดูยุ่งยากไปหน่อย

เลยลองหาดูมีวิธีแก้ง่ายๆ อยู่เหมือนกัน จากเว็บนี้
https://coderwall.com/p/gvwb9g/fix-invalid-date-on-safari-ie

//  Safari & IE browsers do not support the date format “yyyy-mm-dd”
const fixDateForAllBrowsers = dateString => dateString.replace(/-/g, '/');
ก็เออแก้ได้จริงๆ ด้วยนะ คือเจ้า iOS Safari มันไม่ยอมให้เราใช้การ New Date เป็น YYYY-MM-DD เท่านั้นแหละ ถ้าเปลี่ยนเป็น YYYY/MM/DD มันก็จะใช้ได้ละ