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가 Date 인스턴스를 수락하고 유효한지 여부를 확인 / 주장 할 수있게하는 것이 좋습니다. Borgar의 솔루션은 그렇게하지만 브라우저에서 테스트해야합니다. 또한 더 우아한 방법이 있는지 궁금합니다.
- Ash는 API 수락
Date
인스턴스를 전혀 사용하지 않는 것을 고려 했습니다. 이는 확인하는 것이 가장 쉽습니다. - Borgar는
Date
인스턴스 테스트를 제안한 다음Date
시간 값 을 테스트 하도록 제안했습니다 . 날짜가 유효하지 않은 경우 시간 값은NaN
입니다. ECMA-262로 확인 했는데이 동작은 표준이며 정확히 내가 찾는 것입니다.
return ( Object.prototype.toString.call(d) === "[object Date]" && !isNaN(d.getTime()) );