[JS] 오늘 날짜 구하기, 어제 날짜 구하기 , new Date()사용하기, 이전 달의 마지막 날 구하기, 이전 년도의 마지막 날 구하기

2023. 3. 9. 13:34공부/JS,CSS

  • 오늘 날짜 구하기

날짜를 구하려면 Date 생성자를 사용해야 한다.

var today;
var date = new Date();
var year = date.getFullYear();
var month = ('0' + (date.getMonth()+1)).slice(-2);
var day = ('0' + (date.getDate()).slice(-2);

var today = year + "-" + month + "-" + day; // 2023-03-09

월/일은 10이하일 때는 '0'을 붙여주고, 그 외에는 그대로 써주면 된다.

 

만일 month가 10일 때, '0' + '10' = '010'인 상태에서 slice()를 사용하여 맨 뒤에서 2개만 뽑아온다.

slice(2)처럼 양수일 경우에는 앞에서부터 2개를 의미하고,

slice(-2)처럼 음수일 경우에는 뒤에서부터 2개를 의미한다.

따라서 여기서는 slice(-2)를 사용하여 '10'을 return한다.

 

day도 마찬가지이다.

day가 2인 경우, day는 '02'가 되므로 slice(-2)를 사용하여  뒤에서부터 2개인 '02'를 return한다.

 

 


 

 

 

  • Date를 사용하여 어제 날짜 구하기
var today;
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate()-1;

if(day == 0){
	month -= 1;
    if(month == 0){
    	year -= 1;
        month = 12;
    }

    if([1,3,5,7,8,10,12].includes(month)){
        day = 31;
    }else if(month == 2){
    	if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
            day = 29;
        }
        day = 28;
    }else{
    	day = 30;
    }
 }
 
 month = month >= 10 ? month : '0' + month;
 day = day >= 10 ? day : '0' + day;
 
 var yesterDay = year + "-" + month + "-" + day;

하루 전날을 구할 땐, 오늘 날짜가 1일인 경우엔 이전 달의 마지막 날로 넘어가는 점을 주의해야 한다.

day - 1 = 0인 날이 이전 달로 넘어가는 날이므로

month를 1 빼준다.

 

이때, 오늘 날짜가 01월 01인 경우엔 이전 년도 마지막 날짜로 넘어가기 때문에 if절로 체크해준다.

month - 1 = 0인 경우 year는 1을 빼주고, month = 12가 된다.

월마다 마지막 날짜가 다르므로 해당사항도 if절로 체크해준다.

 

month와 day가 10이하인 경우엔 '0'을 붙여줘야 한다.

첫번째에서 구한 방식과는 다르게 삼항연산자를 사용하여

10보다 작을 때 '0'을 붙여서 return하도록 한다.