[new Date]_날자 함수 Date() 정리

2022. 5. 26. 17:41[프론트엔드]_/[Javascript]_ES6

728x90
반응형

목적 : 오늘 날자 구하기, 오늘 날자로부터 7일 뒤 날자 구하기, 년,월 이 지나도 정상적으로 작동 유지

 

문제점 : 년 월 일 을 나눠서 "-" 를 붙이면서

각각의 종류가 최대치를 넘기는 경우의 수를 예상하지 못하여

33일 등 말도 안되는 날자가 출력된 점 수정

let day = date.getDate() +7;

 

해결:

let date = new Date();
date.setDate(date.getDate() +7);

let year = date.getFullYear();
let month = date.getMonth() +1;
let day = date.getDate();

let stringDate = year+"-"+month+"-"+day;

date 객체를 생성한 뒤. setDate 를 사용해서 생성한 Date 객체에 "일" 에 해당하는 getDate 함수를 이용하여

오늘날자를 받아오고 이를 7을 더한 뒤 Date 객체에 셋팅합니다.

 

이렇게 세팅할 경우 일 월 이 최대치 [12월 혹은 28일, 30일 31일 ] 을 초과해도 정상적으로 년/ 월이 바뀌게 됩니다.

 

또한 string 으로 만들기 위해서 각각을 분리하였는데, getMonth의 경우 한달 차이나는 점을 기억하시면 될 거 같습니다.

if(month > 12){
    month = 1;
}

을 추가하여 13월이 되지 않도록 합니다.

 

 

추가적으로 "yyyy-mm-dd" 의 형식을 비교할 때

let comapreDate = new Date(stringDate);

이런식으로 date 객체에 담을 경우 서로 비교가 가능합니다.

 

감사합니다.

728x90
반응형