[javascript] 날짜 비교 포맷 오류

728x90
반응형

 

이슈

날짜비교를 하려고 DB에서 날짜를 가져와서 오늘 날짜와 비교를 하는데 오류가 났다.

 

원인

오늘 날짜 포맷은 "2021-01-27"이었고

DB에서 가져온 날짜 포맷은 "2021-01-31 23:00:33"이었다.

포맷이 맞지 않아 오류가 난 것이다.

 

해결

DB에서 가져온 날짜 포맷을 "2021-01-31"로 변경했다. 

 

추가

"2021-1-1" 과 "2021-01-01" 또한 포맷이 맞지 않아 오류가 난다.

이럴때는 

function leadingZeros(n, digits) {
	    var zero = '';
	    n = n.toString();

	    if (n.length < digits) {
	        for (i = 0; i < digits - n.length; i++)
	            zero += '0';
	    }
	    return zero + n;
	}



var rsvDate = "2020-01-01";
var now = new Date();


if(rsvDate){
  now = 
    leadingZeros(now.getFullYear(), 4) + '-' +
    leadingZeros(now.getMonth() + 1, 2) + '-' +
    leadingZeros(now.getDate(), 2);
  if(rsvDate < now){
    console.log("예약날짜는 현재날짜보다 빠를수 없습니다.");
  }
}

이런식으로 포맷을 맞춰서 비교를 해주는 방법이 있다.

 


References

https://kingofbackend.tistory.com/89

 

[JS] 현재날짜와 특정날짜 비교하기

현재날짜와 특정날짜를 비교하는 코드입니다. ex) 예약날짜를 현재날짜보다 전으로 입력할 경우 예외처리가 필요합니다. 날짜 형식이 "YYYY-MM-DD"이면 같은 형식으로 맞추어 준 다음에 비교를 해

kingofbackend.tistory.com

 

728x90
반응형