Jaepalll
40
2018-11-09 18:12:01
2
184

자바스크립트 날짜 계산 질문입니다..



<c:set var="ii" value="${resultCnt - (searchVO.pageIndex -1) * paginationInfo.recordCountPerPage }" />
<c:forEach var="result" items="${resultList}" varStatus="status">
	<tr>
		
		<c:set var="bCount" value="${status.count}" />
		<td><div id="birthdate${bCount}"></div></td>
		<script>
		Date.prototype.format = function(f) {
				if (!this.valueOf()) return " ";
			 
				var weekName = ["1", "2", "3", "4", "5", "6", "7"];
				var d = this;
				 
				return f.replace(/(yyyy|yy|MM|dd|E|hh|mm|ss|a\/p)/gi, function($1) {
					switch ($1) {
						case "yyyy": return d.getFullYear();
						case "yy": return (d.getFullYear() % 1000).zf(2);
						case "MM": return (d.getMonth() + 1).zf(2);
						case "dd": return d.getDate().zf(2);
						case "E": return weekName[d.getDay()];
						case "HH": return d.getHours().zf(2);
						case "hh": return ((h = d.getHours() % 12) ? h : 12).zf(2);
						case "mm": return d.getMinutes().zf(2);
						case "ss": return d.getSeconds().zf(2);
						case "a/p": return d.getHours() < 12 ? "오전" : "오후";
						default: return $1;
					}
				});
			};
			 
			String.prototype.string = function(len){var s = '', i = 0; while (i++ < len) { s += this; } return s;};
			String.prototype.zf = function(len){return "0".string(len - this.length) + this;};
			Number.prototype.zf = function(len){return this.toString().zf(len);};
		
		function start(){    
		var today = new Date("${result.rpt_regdate}");
		today.setDate(today.getDate() + 30); 
		var year = today.getFullYear();
		var month = today.getMonth() + 1;
		var day = today.getDate();
		for(var i=1; i<16; i++){
			document.getElementById('birthdate'+i).innerHTML=today.format("yyyy-MM-dd");
			console.log(today.format("yyyy-MM-dd"));
		}
		console.log(today.format("yyyy-MM-dd"));
		}
		</script>
</c:forEach>		


현재 DB에 저장되어있는 날짜데이터를  불러와서 그날짜에 일수를 더하려고하는데, 

console에 찍어보면 리스트에 불러와져있는 값들에 대해서는 계산이 되어있는데

그걸 리스트로 출력하려고하니 제일 마지막에있는 값만 가져와서 전체에 뿌려지더라구요..

반복문형식이나 그런부분에서 실수가있는건가요?ㅠㅠㅠㅠ

도움부탁드리겠습니다!!

0
0
  • 답변 2

  • mikiruku
    122
    2018-11-09 19:11:15
    for(var i=1; i<16; i++){
    폰이라 작성이 이상하네요
    위의 반복문 왜있나요?
    로우마다 16번 반복에 결국 마지막 날짜로 16로우 바꿔치기하네요
    0
  • NoDe
    2k
    2018-11-09 19:28:49

    innerHTML 이 아니라 appendChild 같은걸로 하셔야 날짜가 전부 출력이 됩니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.