코딩이 즐겁다

[Javascript] 날짜 비교하는 방법 갓벽 가이드 본문

Javascript

[Javascript] 날짜 비교하는 방법 갓벽 가이드

코즐 2025. 3. 11. 07:00
반응형
반응형

 

날짜 비교는 주로 Date 객체를 사용하며, 시간 차이를 계산하거나 특정 날짜가 더 이전인지 이후인지 판별할 수 있습니다.

 


 

Date 객체로 날짜 비교하기

JavaScript의 Date 객체를 사용하면 날짜와 시간을 쉽게 비교할 수 있습니다.

✅ 예제 코드:

const date1 = new Date("2024-03-01"); // 2024년 3월 1일
const date2 = new Date("2024-03-05"); // 2024년 3월 5일

if (date1 < date2) {
  console.log("date1이 date2보다 이전 날짜입니다.");
} else if (date1 > date2) {
  console.log("date1이 date2보다 이후 날짜입니다.");
} else {
  console.log("두 날짜가 같습니다.");
}
  • 비교 연산자 (<, >, ===)를 사용하여 날짜 비교 가능
  • Date 객체는 숫자(타임스탬프)로 변환되므로 크기 비교가 가능
  • new Date("YYYY-MM-DD") 형식으로 날짜 객체를 생성 가능

 


 

getTime을 사용한 비교하기

Date.getTime() 메서드를 사용하면 밀리초(ms) 단위의 숫자로 변환할 수 있습니다.

✅ 예제 코드:

const date1 = new Date("2024-03-01");
const date2 = new Date("2024-03-05");

if (date1.getTime() < date2.getTime()) {
  console.log("date1이 더 이전 날짜입니다.");
}
  • getTime()은 1970년 1월 1일부터 현재까지의 시간을 밀리초 단위로 반환.
  • 숫자로 변환되므로 비교가 더 정확하고 빠름.

 


 

날짜 차이 계산하기

getTime()을 사용하면 두 날짜 간 차이를 밀리초(ms) 단위로 계산할 수 있습니다.

✅ 예제 코드:

const date1 = new Date("2024-03-01");
const date2 = new Date("2024-03-05");

const diffTime = date2.getTime() - date1.getTime(); // 밀리초 차이
const diffDays = diffTime / (1000 * 60 * 60 * 24); // 일(day) 단위로 변환

console.log(`두 날짜의 차이는 ${diffDays}일 입니다.`);
  • 1000 * 60 * 60 * 24로 나누면 일(day) 단위 차이를 얻을 수 있음.
  • 이 방법을 활용하면 특정 날짜가 몇 일 뒤인지 계산 가능.

 


 

특정 날짜가 오늘인지 확인하기

✅ 예제 코드:

const today = new Date();
const someDate = new Date("2024-03-06");

const isToday =
  today.toDateString() === someDate.toDateString(); // 날짜 문자열 비교

console.log(isToday ? "오늘 날짜입니다." : "오늘이 아닙니다.");

toDateString()을 사용하면 시간(시, 분, 초)은 무시하고 날짜만 비교 가능

 


날짜 정렬 (배열 정렬)

배열 안에 날짜가 있을 때 오름차순(과거 → 미래) 또는 내림차순(미래 → 과거) 정렬할 수 있습니다.

✅ 예제 코드:

const dates = [
  new Date("2024-03-10"),
  new Date("2024-03-05"),
  new Date("2024-03-01"),
];

// 오름차순 정렬 (과거 → 미래)
dates.sort((a, b) => a.getTime() - b.getTime());
console.log(dates);

// 내림차순 정렬 (미래 → 과거)
dates.sort((a, b) => b.getTime() - a.getTime());
console.log(dates);
  • sort()를 사용해 밀리초 단위로 정렬하면 날짜 정렬이 가능

 


날짜 포맷 변환 (YYYY-MM-DD)

기본적으로 Date 객체를 출력하면 가독성이 좋지 않습니다. 따라서 toISOString() 또는 toLocaleDateString()을 사용해서 보기 좋은 형태로 변환할 수 있습니다.

✅ 예제 코드:

const date = new Date("2024-03-06");

// YYYY-MM-DD 형식으로 변환
const formattedDate = date.toISOString().split("T")[0];
console.log(formattedDate); // "2024-03-06"

// 로컬 날짜 형식으로 변환 (한국 기준)
const localDate = date.toLocaleDateString("ko-KR");
console.log(localDate); // "2024. 3. 6."
  • toISOString() → "YYYY-MM-DDTHH:mm:ss.sssZ" 형태
  • .split("T")[0]를 추가하면 YYYY-MM-DD 포맷
  • toLocaleDateString("ko-KR") → 한국 날짜 형식

 

반응형