티스토리 뷰

728x90

개발을 하다 보면 두 개의 날짜/시간을 비교하는 경우가 많이 발생합니다. 오늘이 특정 날짜인지, 아직 지나가지 않았는지 확인할 수도 있고, 날짜들을 비교하여 시간 순서대로 정렬할 수도 있습니다.

 

이 글에서는 두 날짜/시간의 크기를 비교하는 방법에 대해서 알아보겠습니다.

 

날짜/시간 비교 - 비교 연산자

비교 연산자(<, >, =, >=, <=)를 사용하여 날짜들을 비교할 수 있습니다. 숫자의 크기를 비교하는 것과 동일한 방법으로, 날짜의 크기를 비교할 수 있습니다. 크기가 작으면 시간이 상대적으로 앞에 있는 것이고, 크면 시간이 상대적으로 뒤에 있는 것입니다. 또한, 크기가 같으면 두 날짜의 시간이 같은 것입니다.

 

아래 코드는 두 날짜를 비교하는 예제입니다. Date는 날짜 정보만 갖고 있습니다.

const d1 = new Date("2023-10-17");
const d2 = new Date("2023-10-20");

if (d1 < d2) {
  console.log("d1은 d2 이전 날짜");
} else if (d1 > d2) {
  console.log("d1은 d2 이후 날짜");
} else {
  console.log("d1과 d2는 같은 날짜");
}

Output:

d1은 d2 이전 날짜

 

아래 코드도 두개의 Date 객체를 비교하는데, Date는 날짜와 시간 정보를 함께 갖고 있습니다.

const d1 = new Date("2023-10-17 12:20:30");
const d2 = new Date("2023-10-17 12:20:10");

if (d1 < d2) {
  console.log("d1은 d2 이전 날짜");
} else if (d1 > d2) {
  console.log("d1은 d2 이후 날짜");
} else {
  console.log("d1과 d2는 같은 날짜");
}

Output:

d1은 d2 이후 날짜

 

날짜/시간 비교 - getTime()

Date.getTime()은 Date가 갖고 있는 날짜/시간을 UTC 시간의 millisecond 단위로 리턴합니다. UTC는 1970년 1월 1일을 0초로 시작하여 현재까지 흐른 시간을 측정하는 방식입니다.

 

아래와 같이 UTC 시간을 가져와서, 비교 연산자로 시간의 크기를 비교할 수 있습니다.

const d1 = new Date("2023-10-17 12:20:30");
const d2 = new Date("2023-10-17 12:20:10");

d1Utc = d1.getTime();
d2Utc = d2.getTime();

if (d1Utc < d2Utc) {
  console.log("d1은 d2 이전 날짜");
} else if (d1 > d2) {
  console.log("d1은 d2 이후 날짜");
} else {
  console.log("d1과 d2는 같은 날짜");
}

Output:

d1은 d2 이후 날짜

 

오늘 날짜와 특정 날짜 비교

new Date()는 지금 날짜와 시간 정보를 갖고 있는 객체를 생성합니다. 이렇게 오늘의 Date 객체를 만들 수 있고, 이 객체를 다른 Date 객체와 비교할 수 있습니다.

 

아래는 오늘과 특정 날짜의 Date 객체를 비교 연산자로 비교하였습니다.

const today = new Date();
const d2 = new Date("2023-10-17 12:20:10");

if (today < d2) {
  console.log("오늘은 d2 이전 날짜");
} else if (today > d2) {
  console.log("오늘은 d2 이후 날짜");
} else {
  console.log("오늘과 d2는 같은 날짜");
}

Output:

오늘은 d2 이후 날짜
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함