자바스크립트에서 날짜, 시간(Date)의 크기를 비교하는 방법을 예제와 함께 소개합니다.
1. Date 객체 생성
아래와 같이 다양한 방법으로 Date 객체를 생성할 수 있습니다.
// 현재 시간으로 Date 객체 생성
const date1 = new Date();
console.log(date1); // 2023-03-04T07:18:12.392Z
// 문자열로 Date 객체 생성
const date2 = new Date('2022-05-04');
console.log(date2); // Wed May 04 2022 09:00:00 GMT+0900 (Korean Standard Time)
// 숫자로 Date 객체 생성
const date3 = new Date(2022, 4, 4, 10, 30, 0); // 2022년 5월 4일 오전 10시 30분 0초
console.log(date3); // Wed May 04 2022 10:30:00 GMT+0900 (Korean Standard Time)
2. 비교 연산자 (>, >=, <, <=, ===)
아래와 같이 비교 연산자를 이용하여 두개의 Date 객체의 크기를 비교할 수 있습니다.
- 두 객체 비교 결과, 크다는 시간 상 앞에(미래) 있다는 의미
- 두 객체 비교 결과, 작다는 시간 상 뒤에(과거) 있다는 의미
const date1 = new Date('2023-03-02');
const date2 = new Date('2023-03-03');
console.log(date1.getTime() > date2.getTime()); // false
console.log(date1.getTime() >= date2.getTime()); // false
console.log(date1.getTime() < date2.getTime()); // true
console.log(date1.getTime() <= date2.getTime()); // true
두 Date 객체가 같은지(날짜, 시간이 같은지) 확인할 때는 ===
연산자를 이용하여 비교하면 됩니다.
const date1 = new Date('2022-05-04');
const date2 = new Date('2022-05-04');
if (date1.getTime() === date2.getTime()) {
console.log('같은 날짜, 시간');
} else {
console.log('다른 날짜, 시간');
}
3. 년(Year), 월(Month), 일(Day) 만 비교
Date 객체의 getFullYear(), getMonth(), getDate() 메서드를 사용하여 년, 월, 일 값만 비교할 수 있습니다.
const date1 = new Date('2022-05-01');
const date2 = new Date('2022-05-01');
if (date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate()) {
console.log('년, 월, 일이 같음');
} else {
console.log('년, 월, 일이 같지 않음');
}