자바스크립트를 사용하여 날짜를 구하는 방법 중 이번 달이 몇 일까지 있는지 알려면 어떻게 할까요? 다시 말하면...

"특정 달의 마지막 날을 알아내는 방법"

위와 같이 얘기할 수 있습니다. 아래에서 자세히 알아봅니다.



# 자바스크립트로 마지막 날짜 구하는 방법
자바스크립트는 날짜와 관련된 편리한 함수들이 존재하는데 먼저 Date 객체를 사용해야 합니다.

Date 객체를 사용할 때 인자로 날짜를 지정할 수 있는데 이 방법을 사용하면 간단하게 원하는 마지막 날을 얻을 수 있죠. 우선 현재 날짜를 사용하여 인스턴스를 만들기 위해 아래와 같이 사용합니다.

new Date(년도, 월, 일)

원하는 날의 인스턴스를 사용해 바로 마지막 날을 얻어보려고 합니다. 간단한 예제를 만들어서 알아보죠.


! 2019년 2월의 마지막 날 구하기
예를들어 2019년의 2월은 언제가 마지막 날인지 알아보려면 어떻게 할까요? 아래 코드를 실행하도록 합니다.
var lastDate = new Date(2019, 2, 0).getDate();
console.log(lastDate);


// '28'을 출력함

보시는 것 처럼 간단하게 28일이 마지막 날이라는 것을 알 수 있습니다. 코드를 살펴보면 두 가지를 사려봐야 합니다.

1. new Date(2019, 2, 0)
여기서 가운데 인자값 2는 2월이 아닌 3월을 의미합니다. 해당 월의 순서인 index값이기 때문이죠. 그래서 0이 1월입니다. 또한 3은 4월이 되고 4는 5월이 됩니다. 여기서는 2이므로 3월을 의미합니다.

다음으로 세 번째 인자가 날짜입니다. 날짜는 1부터 31까지 표기하는데 만약 0으로 값을 넘겨주면 이전 달의 날짜가 선택되게됩니다. 그래서 0을 사용할 경우 이전 달의 마지막 날이 선택되는 것이죠.


2. getDate()
이제 선택된 날에서 날짜만 알면 되는데요 바로 날짜를 얻는 방법이 바로 getDate() 함수입니다. 위에서 28이란 값을 얻기 위해 이 함수를 사용한 것입니다.

여기까지 자바스크립트를 사용해 원하는 달의 마지막 날을 구하는 방법에 대하여 알아봤습니다.


! 추가사항) 마지막 달 역시 구할 수 있을까?

그렇다면 마지막 달 역시 같은 방법으로 구할 수 있을까요? 방법은 '그렇다'입니다. 다만 달의 경우 index 순서 값이 사용되므로 0이 아닌 -1과 같이 사용해야 가능합니다.

추가로, 월과 일자 모두 마이너스 값이 사용 가능합니다. 즉 -2, -10 처럼 10일 이 전일 등도 모두 사용할 수 있습니다.


! 브라우저 호환성
위의 방법은 대부분의 최신 브라우저에서 모두 동작합니다. 아래 브라우저에서 잘 동작하니 참고하세요.

- Chrome
- Firefox
- IE 7 ~ 11
- Edge

보시는 것처럼 최근 사용되는 거의 모든 브라우저에서 사용이 가능합니다.