JavaScript에서 잘못된 날짜 인스턴스 감지
"잘못된 날짜" 인스턴스가 존재하기 때문에 JavaScript에서 날짜 개체의 유효성을 검사하는 것이 어려울 수 있습니다. 이러한 객체는 유효한 것처럼 보이지만(Date 인스턴스가 true를 반환함) 유효하지 않은 날짜를 나타냅니다. 이 문서에서는 이러한 인스턴스를 탐지하는 다양한 접근 방식을 살펴봅니다.
원래 질문
제공된 코드는 문제를 보여줍니다.
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'
권장 솔루션
1. Date.parse()를 사용하여 유효성 검사
Date.parse는 날짜 문자열을 구문 분석하고 유효한 날짜를 반환하거나 문자열이 유효하지 않은 경우 NaN을 반환합니다. 이는 날짜 객체를 생성하기 전에 날짜 문자열을 검증하는 데 사용할 수 있습니다:
if (Date.parse("foo") === NaN) { // invalid date string }
2. NaN 시간 값 테스트
기존 Date 인스턴스의 경우 시간 값(getTime() 또는 valueOf())을 테스트할 수 있습니다.
if (isNaN(d.getTime())) { // invalid Date object }
이 방법은 ECMA에 의존합니다. -262 사양: 유효하지 않은 Date 객체에 NaN 시간 값이 있음을 명시합니다.
선호 코드
이러한 권장 사항을 기반으로 다음 함수를 사용하여 Date 인스턴스의 유효성을 검사할 수 있습니다.
function isValidDate(d) { return d instanceof Date && !isNaN(d); }
대체 방법
If 외부 JS 컨텍스트의 Date 객체에는 관심이 없습니다. 이 간단한 형식은 다음과 같습니다. 선호:
function isValidDate(d) { return d instanceof Date && !isNaN(d); }
참고
이 답변은 Date 인스턴스 유효성 검사에 중점을 두고 있지만 날짜 입력 자체의 유효성은 다루지 않는다는 점에 유의하는 것이 중요합니다(예: , 2013-13-32).
위 내용은 JavaScript에서 유효하지 않은 날짜 인스턴스를 어떻게 안정적으로 감지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!