[JavaScript] Date() 날짜, 시간 계산

realzu·2022년 10월 3일
0

💛 about JavaScript

목록 보기
18/24

지난 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()는 없다!

⏳ 날짜, 시간 계산 및 비교하기

set과 get을 이용해 날짜 계산

다음은 크리스마스 날짜를 통해 크리스마스 이브 날짜를 구하는 예시다.

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 (한국 표준시)

비교 연산자 및 get 메서드로 날짜 비교

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()으로 시간 비교

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

profile
부딪히지 않으면 아무 일도 일어나지 않는다 👊

0개의 댓글