생활
자바스크립트로 현재 월의 마지막 일자를 구할 수 있나요?
자바스크립트로 로직을 짜고 있는데 막히는 부분이 있어서 전문가님의 도움을 구해봅니다
자바스크립트로 현재 월의 마지막 일자를 구할 수 있을까요?
매달 말일이 틀리자나요? 그래서 그 달의 마지막 일을 구해서 처리해 보고 싶은 게 있는데 어떻게 구해야 할지를 모르겠네요. 방법이 있을까요?
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() 함수를 이용하시는게 맞을 듯 싶습니다.