728x90
반응형
질문 : JavaScript에서 "유효하지 않은 날짜"날짜 인스턴스 감지
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
인스턴스를 전혀 받아들이지 않도록 고려했습니다. 이것이 가장 쉽게 확인할 수 있습니다. Date
인스턴스에 대한 테스트를 제안한Date
의 시간 값에 대한 테스트를 제안했습니다. 날짜가 유효하지 않은 경우 시간 값은NaN
입니다. ECMA-262로 확인한 결과이 동작은 표준에 있습니다. 이것이 바로 제가 찾고있는 것입니다.
답변
방법은 다음과 같습니다.
if (Object.prototype.toString.call(d) === "[object Date]") {
// it is a date
if (isNaN(d.getTime())) { // d.valueOf() could also work
// date is not valid
} else {
// date is valid
}
} else {
// not a date
}
업데이트 [2018-05-31] : 다른 JS 컨텍스트 (외부 창, 프레임 또는 iframe)의 Date 객체에 관심이없는 경우 다음과 같은 간단한 형식을 선호 할 수 있습니다.
function isValidDate(d) {
return d instanceof Date && !isNaN(d);
}
출처 : https://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
Node.js의 Connect, Express 및 "middleware"는 무엇일까? (0) | 2021.08.06 |
---|---|
특정 클래스 나 속성이 없는 요소를 선택하는 CSS 선택기 (0) | 2021.08.06 |
javascript 문자열에서 텍스트를 제거하는 방법 (0) | 2021.08.05 |
Moment Js에서 두 날짜 간의 시간 차이 가져 오기 (0) | 2021.08.05 |
HTML의 select 기본 값 설정하는 방법 (0) | 2021.08.05 |