웹 개발/소소한 팁, 버그 해결

[Next.js] 비교 연산자로 날짜 비교 안 될 때 [JavaScript]

마라턍 2024. 3. 15. 23:08
const d1 = new Date(2000, 2, 1);
const d2 = new Date(2010, 4, 27);

console.log(d1 > d2) // false
console.log(d1 < d2) // true

 

기본적으로 위 식처럼 비교 연산자를 이용해 단순하게 Date를 비교할 수 있다.

그런데 저 식이 모두 false를 반환할 때가 있는데, 그건 두 Date의 형태가 달라서 발생한다.

 

나는 DB에 저장된 유효 기간과 현재 시간을 비교해서 해당 요청이 유효한지를 판단하는 코드를 작성해야 했는데,

이때 서버에서 받아 온 expiration 값(Date 형식)과 현재 시간을 반환하는 new Date()의 형태가 달라 앞서 언급한 문제가 발생하였다.

나는 아래와 같이 받아 온 값을 형태를 맞춰 주어 해결했는데, 이 방법 말고도 형태를 통일하는 방법을 쓰면 해결할 수 있을 것 같다.

console.log(new Date(data.expiration) > new Date())

 

끗~