ฉันต้องการบอกความแตกต่างระหว่างวัตถุวันที่ที่ถูกต้องและไม่ถูกต้องใน 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()) );