ฉันต้องการบอกความแตกต่างระหว่างวัตถุวันที่ที่ถูกต้องและไม่ถูกต้องใน JS แต่ไม่สามารถหาวิธี:
var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'
มีแนวคิดสำหรับการเขียนisValidDate
ฟังก์ชั่นหรือไม่?
- Ash แนะนำ
Date.parse
สำหรับการแยกสตริงวันที่ซึ่งให้วิธีที่มีสิทธิ์ในการตรวจสอบว่าสตริงวันที่ถูกต้อง - สิ่งที่ฉันต้องการถ้าเป็นไปได้คือให้ API ของฉันยอมรับอินสแตนซ์วันที่และเพื่อให้สามารถตรวจสอบ / ยืนยันว่ามันถูกต้องหรือไม่ โซลูชันของ Borgar ทำเช่นนั้น แต่ฉันต้องการทดสอบในเบราว์เซอร์ ฉันยังสงสัยว่ามีวิธีที่สง่างามกว่านี้หรือไม่
- Ash ทำให้ฉันพิจารณาว่าไม่ให้ API ของฉันยอมรับ
Date
อินสแตนซ์เลยนี่เป็นการตรวจสอบที่ง่ายที่สุด - Borgar แนะนำการทดสอบสำหรับ
Date
อินสแตนซ์แล้วทดสอบDate
ค่าเวลาของNaN
ถ้าวันที่ไม่ถูกต้องคุ้มค่าเวลาที่ ฉันตรวจสอบกับECMA-262และพฤติกรรมนี้อยู่ในมาตรฐานซึ่งเป็นสิ่งที่ฉันกำลังมองหา
return ( Object.prototype.toString.call(d) === "[object Date]" && !isNaN(d.getTime()) );