본문 바로가기
팁 & 노하우/Javascript

moment "Invalid date" 에러 처리 하기

by 대디동동 2024. 2. 29.
728x90

Javascript Library 중에 날짜 시간 처리가 가장 편한 라이브러리는 moment.js 인 것 같습니다.

 

예전에는 숫자, 통화 변환 등 처리 작업을 Backend에서 처리했지만,

이제는 API, JSON, Frontend 개발로 변경되면서 Frontend에서 많이 처리하고 저 또한 이러한 방식을 사용합니다.

 

moment "Invalid date" 에러 처리 방법

 

moment 시간 변환 처리 중 가장 많이 발생하는 것은 날짜 형식이 맞지 않는 문제인데,

변환 후 리턴 값을 받아 보면 "Invalid date" 가 나옵니다.

개발 시간이 부족해서 사용자가 입력하는 값의 데이터 검증을 모두 처리하기도 소홀히 하게 되면

많이 발생하는 문제입니다.

 

그렇다고 무작정 View 화면에 "Invaild date"를 표시할 수 없으니

예외 처리를 해야 겠습니다.

 

다양한 방법이 있지만, moment.js 사용할 경우 반드시 moment() 라는 함수로 값을 변경해야 하는데,

변경 후 isValid() 함수로 처리하면 간단하가 해결할 수 있습니다.

 

function commonDateFormat(date) {
    let checkDate = moment(date);
    let returnDate = checkDate.isValid() ? moment(checkDate).format('YYYY.MM.DD') : "";
    return returnDate;
}

 

위와 같이 변환할 값은  moment() 함수로 변경 후

isValid() 함수로 체크하여 값을 리턴해주면 간단하게 해결할 수 있습니다.

 

try... catch에 걸리지 않기 때문에 isValid()  함수 사용하시길 추천드립니다.

 

https://momentjs.com/

 

Moment.js | Home

Format Dates moment().format('MMMM Do YYYY, h:mm:ss a'); moment().format('dddd'); moment().format("MMM Do YY"); moment().format('YYYY [escaped] YYYY'); moment().format(); Relative Time moment("20111031", "YYYYMMDD").fromNow(); moment("20120620", "YYYYMMDD"

momentjs.com

 

 

반응형