지난 Date() 객체 생성 글에 이어서, Date 객체를 활용해 날짜를 계산하는 방법을 알아보겠다.
Date() 객체를 생성한 후에, 메서드로 날짜와 시간을 다르게 설정할 수 있다.
let christmas = new Date(2022, 11, 25); // Sun Dec 25 2022 00:00:00 GMT+0900 (한국 표준시)
let year = christmas.setFullYear(2023);
console.log(year); // Mon Dec 25 2023 00:00:00 GMT+0900 (한국 표준시)
setFullYear : 연도
setMonth (0-11) : 월
setDate (0-31) : 일 (0은 이전 달의 마지막 날)
setHours (0-23) : 시
setMinutes (0-59) : 분
setSeconds (0-59) : 초
setMilliseconds (0-999) : 밀리 초
메서드를 통해 Date() 객체의 특정 값만 가져올 수 있다.
let christmas = new Date(2022, 11, 25);
let year = christmas.getFullYear();
let month = christmas.getMonth() + 1; // month는 0~11이므로 +1 하여 표시
let date = christmas.getDate();
console.log(`크리스마스는 ${year}년 ${month}월 ${date}일`);
// 크리스마스는 2022년 12월 25일
getFullYear : 연도
getMonth (0-11) : 월
getDate (1-31) : 일
getDay (0-6) : 요일 (0=일요일, 1=월요일, ... , 6=토요일)
getHours (0-23) : 시
getMinutes (0-59) : 분
getSeconds (0-59) : 초
getMilliseconds (0-999) : 밀리 초
getTime : 시간
참고로 getDay()
는 있지만 setDay()
는 없다!
다음은 크리스마스 날짜를 통해 크리스마스 이브 날짜를 구하는 예시다.
let christmas = new Date(2022, 11, 25);
let eve = new Date(christmas);
eve.setDate(eve.getDate() - 1);
console.log(eve); // Sat Dec 24 2022 00:00:00 GMT+0900 (한국 표준시)
Date 객체는 <. > 비교 연산자를 통해 비교할 수 있다.
하지만 같은 지를 비교하기 위해서 === 동등 연산자의 사용은 불가능하다. get 메서드를 활용해 비교해야 한다.
console.log(eve < christmas); // true
let sameEve = new Date(eve);
console.log(eve === sameEve); // false
function eveCheck(eve1, eve2) { // 날짜 비교하는 함수 생성
return eve1.getFullYear() === eve2.getFullYear() &&
eve1.getMonth() === eve2.getMonth() &&
eve1.getDate() === eve2.getDate();
}
console.log(eveCheck(eve, sameEve)); //true
getTime()
은 UTC 시간을 millisecond로 반환한다. 특정 날짜를 기준으로 현재까지의 경과 시간이다. 비교, 동등 연산자로 모두 비교 가능하다.
let christmas = new Date(2022, 11, 25);
let eve = new Date(2022, 11, 24);
console.log(christmas.getTime() > eve.getTime()); // true
console.log(christmas.getTime() <= eve.getTime()); // false
cf)
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date
https://7942yongdae.tistory.com/40
https://ngio.co.kr/10659