[소소한 개발 일지] DOM 변화 감지하기(MutationObserver)
2020-07-05
javascript 로 이번주 7일의 날짜 구하기
2016-02-10
Explanation
요즘 새로 공부하고 있는 것들이 많아서 블로그 포스팅에 소홀했네요.
이 포스팅은 Javascript로 이번주 7일의 날짜를 구하는 방법입니다. (일요일부터 토요일까지)
더 좋은 방법을 아시는 분은 댓글로 알려주세요 :)
2017.06.29 수정사항
코드에 오류가 있었네요.. 댓글로 알려주신 정보들을 참고하여 수정하였습니다.
감사합니다 :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
var currentDay = new Date(); var theYear = currentDay.getFullYear(); var theMonth = currentDay.getMonth(); var theDate = currentDay.getDate(); var theDayOfWeek = currentDay.getDay(); var thisWeek = []; for(var i=0; i<7; i++) { var resultDay = new Date(theYear, theMonth, theDate + (i - theDayOfWeek)); var yyyy = resultDay.getFullYear(); var mm = Number(resultDay.getMonth()) + 1; var dd = resultDay.getDate(); mm = String(mm).length === 1 ? '0' + mm : mm; dd = String(dd).length === 1 ? '0' + dd : dd; thisWeek[i] = yyyy + '-' + mm + '-' + dd; } console.log(thisWeek); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
// 결과 var value = []; // 오늘의 요일 및 날짜 var currentDay = new Date(); var theYear = currentDay.getFullYear(); var theMonth = Number(currentDay.getMonth()) + 1; var theDate = Number(currentDay.getDate()); var theDay = Number(currentDay.getDay()); // 날짜 업데이트 var newYear, newMonth, newDate; // 이번달 마지막날 var nowLast = new Date (); nowLast.setMonth(nowLast.getMonth() + 1); var nowLastDay = new Date( nowLast.getYear(), nowLast.getMonth(), ""); nowLastDay = nowLastDay.getDate(); var lastDay; // 이전 달 마지막날 파악 for (var i = -theDay; i < (theDay-7)*-1; i++){ newYear = theYear; newDate = theDate; newMonth = theMonth; //첫주 일때 if(theDate+i < 1){ if(theMonth == 1){ // 1월 첫째주 일때 lastDay = new Date(Number(currentDay.getFullYear())-1, Number(currentDay.getMonth())+12, ""); } else { // 1월 첫째주가 아닐때 lastDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), ""); } newYear = lastDay.getFullYear(); newMonth = lastDay.getMonth(); newDate = Number(lastDay.getDate())+i; //마지막주 일때 } else if( theDate+i > nowLastDay) { if(theMonth == 12){ // 12월 마지막주 일때 newYear = Number(theYear) + 1; } newMonth = Number(theMonth) + 1; newDate = i; } newDate = (newDate + i); // yyyy-mm-dd 형식으로 if(String(newDate).length < 2){ newDate = "0" + String(newDate); } if(String(newMonth).length < 2){ newMonth = "0" + String(newMonth); } //이번주 7일의 날짜를 value에 담는다. value.push(newYear + "-" + newMonth + "-" + newDate); } console.dir(value); |