자바스크립트로 현재 월의 마지막 일자를 구할 수 있나요?

자바스크립트로 로직을 짜고 있는데 막히는 부분이 있어서 전문가님의 도움을 구해봅니다

자바스크립트로 현재 월의 마지막 일자를 구할 수 있을까요?

매달 말일이 틀리자나요? 그래서 그 달의 마지막 일을 구해서 처리해 보고 싶은 게 있는데 어떻게 구해야 할지를 모르겠네요. 방법이 있을까요?

    12개의 답변이 있어요!

    • 먼저 다음달 1일을 구해서 -1일을 해주면 이번달 마지막 일자가 나오겠네요.

      var curDate = new Date();

      var year = curDate.getFullYear(); // 년도

      var month = curDate.getMonth() + 1; // 다음달

      var nextMon = new Date(year, month, 1); //다음달 1일

      nextMon.setDate(nextMon.getDate() - 1); //전날짜구하기

      document.write("이번달 말일:" + nextMon.getDate()); // 마지막 날짜

    • 이런식으로 하시면 될듯 합니다.

      var today = new Date();

      var year = today.getFullYear();

      var month = today.getMonth() + 1; //다음달

      var lastDay = new Date(year, month,0); //일자에 0을 입력하면 이전달 말일을 리턴합니다.

      alert(lastDay.getDate() );

    • 안녕하세요,

      새로운 Date를 만들 때, 날짜를 0으로 입력하면 전달의 말일로 설정됩니다.

      이를 이용하면 말일을 쉽게 구할 수 있습니다.

      코드로 살펴보시죠

      var now = new Date(); // Tue Sep 29 2020 19:11:12 GMT+0900 (대한민국 표준시) var last_day = new Date(now.getFullYear(), now.getMonth() + 1, 0); // Wed Sep 30 2020 00:00:00 GMT+0900 (대한민국 표준시) last_day.getDate(); // 30

      감사합니다.

    • 아래와 같이 코드를 만들면 될 것 같습니다.

      현재 달의 마지막 날은 구하는 코드 입니다.

      let currentDate = new Date() let lastDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0) lastDate.getDate()

    • // 3월 1일 let date = new Date(2019, 2, 1); document.write(date.toLocaleString() + '<br>'); // 2월 28일(말일) let lastDate = new Date(2019, 2, 0); document.write(lastDate.toLocaleString() + '<br>'); document.write(lastDate.getDate() + '<br>'); // 2월 27일 let lastDateBefore = new Date(2019, 2, -1); document.write(lastDateBefore.toLocaleString() + '<br>');

      이렇게 명시해서 구하는 방법이 있구요,

      제일 간단하게는

      var now = new Date();

      var lastDate;

      lastDate = new Date(now.getTear(), now.getMonth()+1, 0);

      alert(lastDate);

      이와같이 구하시면 됩니다.

    • 편리한 라이브러리가 많이 있긴 한데 다른 분들이 많이 소개해주실 테니 저는 라이브러리 없이 가장 간단하게 구현할 수 있는 방법을 소개해 드립니다.

      const now = new Date(); // ex) now = 2020-09-28 xx:xx:xx const nextMonth1st = new Date(`${now.getFullYear()}-${now.getMonth() + 2}`); // ex) nextMonth1st = 2020-10-01 xx:xx:xx GMT+0900 const lastDate = new Date(nextMonth1st.setDate(0)) // ex) lastDate = 2020-09-30 xx:xx:xx // 1보다 작은 날은 없으니 매월 0일은 이전 달 마지막날을 의미합니다. console.log(lastDate.getDate()) // ex) >>> 30

    • <html> <body> <p id="date_calc"></p> <script> var d = new Date(); var year = d.getFullYear(); var month = d.getMonth() + 1; var last = new Date( year, month ); last = new Date( last - 1 ); var lastD = last.getDate(); document.getElementById("date_calc").innerHTML = lastD; </script> </body> </html> lastD 변수에 이번달의 마지막 일이 들어가게 됩니다

    • var now = new Date(); var firstDate = new Date(now.getYear(), now.getMonth(), 1); var lastDate = new Date(now.getYear(), now.getMonth()+1, 0);// 2월 마지막일 new Date(2020, 10, 0); // 2020-09-30

      new Date(2020, 10, 0);

      설명을 한다면

      월의 경우 0부터 시작하므로 10는 10월이 아니라 9월입니다.

      10월 0일은 없으므로 하루전인 9월의 마지막일을 리턴합니다.

      응용한다면 맨 마지막 일에서 하루전이라면 -1 옵션을 넣어주시면 됩니다.

      new Date(2020, 10, -1); // 2020-09-29

    • 안녕하세요.

      아래와 같이 응용을 하시면 됩니다.

      var month = 0; // January var d = new Date(2008, month + 1, 0); alert(d); // last day in January

      이렇게 하면 팝업으로 1월의 마지막 날을 출력해 줍니다. 마지막의 alert는 팝업을 위한 것이고,

      d에 들어있는 값을 사용하시면 됩니다.

    • 안녕하세요?

      javascript 에서 대부분의 시간관련 기능은 moment 사용하면 쉽게 해결할 수 있습니다.

      (약간 무겁다는 단점은 있습니다.)

      현재 구하시려는 각 달의 마지막 일은

      import moment from 'moment' const lastDayOfMonth = moment().endOf('month') console.log('lastDayOfMonth', lastDayOfMonth)

      그럼 즐겁게 코딩하세요~ 수고하세요.

    • 안녕하세요~! 아하(Aha) 지식답변자 다라닝입니다.

      질문하신 내용에 대하여 아래와 같이 답변 드립니다.

      var lastday =( new Date( 년도, 월, 0 ) ).getDate();

      로 하시면 월의 마지막 날을 구할수 있습니다!

      부족하지만 도움이 되셨기를 바라며 추가적인 문의가 필요하시면 답변 부탁드려요!

    • 자바스크립트로 현재 월의 마지막 일자를 구하려면 Date 객체를 이용하시면 될 것으로 보입니다.

      new date(년, 월, 일) 방식으로 이용하여 현재 월의 마지막 일자를 구하시면 될 것으로 보이며

      월의 경우 0~11 범위 내에서 (0 = 1월, 1 = 2월....)쓰시면 되며 마지막 날짜의 2자리 숫자만을 원하신다면

      getdate() 함수를 이용하시는게 맞을 듯 싶습니다.