2013-03-27 11:49:31 - 본인 요청으로 인한 삭제 (냉무) ☆ 정보
2013-03-27 11:49:31 - 본인 요청으로 인한 삭제 (냉무) ☆
관련링크
본문
댓글 전체

제가 문제를 이해한게 맞나 모르겠네요.
어째뜬 여러게 카운트를 하려면...이렇게 해보면 어떨지요
<form name='day' action=''>
<input type='text' name='count1' readonly='readonly' size='25'>
<input type='text' name='count2' readonly='readonly' size='25'>
<input type='text' name='count3' readonly='readonly' size='25'>
<input type='text' name='count4' readonly='readonly' size='25'>
</form>
<script type="text/javascript">
function count(ele, future){
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=mod/1000;
ele.value=year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초';
setTimeout(function() { count(ele, future); }, 1);
}
var future1=new Date(2012,02,21,0,0,0,0).getTime();
var future2=new Date(2012,01,01,0,0,0,0).getTime();
var future3=new Date(2012,03,15,0,0,0,0).getTime();
var future4=new Date(2012,03,02,0,0,0,0).getTime();
count(document.forms['day']['count1'], future1);
count(document.forms['day']['count2'], future2);
count(document.forms['day']['count3'], future3);
count(document.forms['day']['count4'], future4);
</script>
어째뜬 여러게 카운트를 하려면...이렇게 해보면 어떨지요
<form name='day' action=''>
<input type='text' name='count1' readonly='readonly' size='25'>
<input type='text' name='count2' readonly='readonly' size='25'>
<input type='text' name='count3' readonly='readonly' size='25'>
<input type='text' name='count4' readonly='readonly' size='25'>
</form>
<script type="text/javascript">
function count(ele, future){
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=mod/1000;
ele.value=year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초';
setTimeout(function() { count(ele, future); }, 1);
}
var future1=new Date(2012,02,21,0,0,0,0).getTime();
var future2=new Date(2012,01,01,0,0,0,0).getTime();
var future3=new Date(2012,03,15,0,0,0,0).getTime();
var future4=new Date(2012,03,02,0,0,0,0).getTime();
count(document.forms['day']['count1'], future1);
count(document.forms['day']['count2'], future2);
count(document.forms['day']['count3'], future3);
count(document.forms['day']['count4'], future4);
</script>

jQury 플러그인으로 살짝 바꿔보면..
<script type="text/javascript">
$.fn.countdown = function(future_time) {
var doit = function($ele, future) {
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=mod/1000;
$ele.val(year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초');
setTimeout(function() { doit($ele, future); }, 1);
};
return this.each(function() {
doit($(this), future_time);
});
};
var future1=new Date(2012,02,21,0,0,0,0).getTime();
var future2=new Date(2012,01,01,0,0,0,0).getTime();
var future3=new Date(2012,03,15,0,0,0,0).getTime();
var future4=new Date(2012,03,02,0,0,0,0).getTime();
$(document).ready(function() {
$('input[name=count1]').countdown(future1);
$('input[name=count2]').countdown(future2);
$('input[name=count3]').countdown(future3);
$('input[name=count4]').countdown(future4);
});
이렇게 하면 됩니다. 근데..
함수에서 재귀적으로 setTimeout 을 호출하지 않고
setInterval 로 하면... html 이 업데이트 되지 않습니다. 아마도.. 1ms 가 너무 짧은듯해서 업데이트를 못하는 것이 아닌가하고 생각해봅니다.
<script type="text/javascript">
$.fn.countdown = function(future_time) {
var doit = function($ele, future) {
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=mod/1000;
$ele.val(year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초');
setTimeout(function() { doit($ele, future); }, 1);
};
return this.each(function() {
doit($(this), future_time);
});
};
var future1=new Date(2012,02,21,0,0,0,0).getTime();
var future2=new Date(2012,01,01,0,0,0,0).getTime();
var future3=new Date(2012,03,15,0,0,0,0).getTime();
var future4=new Date(2012,03,02,0,0,0,0).getTime();
$(document).ready(function() {
$('input[name=count1]').countdown(future1);
$('input[name=count2]').countdown(future2);
$('input[name=count3]').countdown(future3);
$('input[name=count4]').countdown(future4);
});
이렇게 하면 됩니다. 근데..
함수에서 재귀적으로 setTimeout 을 호출하지 않고
setInterval 로 하면... html 이 업데이트 되지 않습니다. 아마도.. 1ms 가 너무 짧은듯해서 업데이트를 못하는 것이 아닌가하고 생각해봅니다.

답변 무지하게 감사드리고요 ...
제 머리의 한계인지 ...
<?php
for ($t=0; $t<count($list); $t++) {
$str = "{$list[$t]['wr_6']}";
?>
<form name='day' action=''>
<input type='text' name='count<?php echo $t?>' readonly='readonly' size='25' />
</form>
<script type="text/javascript">
function count(ele, future){
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=mod/1000;
ele.value=year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초';
setTimeout(function() { count(ele, future); }, 1);
}
var future<?php echo $t?>=new Date(<?php echo substr($str,0,4)?>,<?php echo substr($str,8,2)?>,<?php echo substr($str,14,2)?>,0,0,0,0).getTime();
count(document.forms['day']['count<?php echo $t?>'], future<?php echo $t?>);
</script>
<?php } ?>
하면 ... 문제가 발생하네요 ...
http://dtd.mixskin.com/bbs/board.php?bo_table=f_made
딱 한군데만 나오네요 ...
아무래도 for 문 밖에 위치해야 할 듯 합니다.
제 머리의 한계인지 ...
<?php
for ($t=0; $t<count($list); $t++) {
$str = "{$list[$t]['wr_6']}";
?>
<form name='day' action=''>
<input type='text' name='count<?php echo $t?>' readonly='readonly' size='25' />
</form>
<script type="text/javascript">
function count(ele, future){
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=mod/1000;
ele.value=year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초';
setTimeout(function() { count(ele, future); }, 1);
}
var future<?php echo $t?>=new Date(<?php echo substr($str,0,4)?>,<?php echo substr($str,8,2)?>,<?php echo substr($str,14,2)?>,0,0,0,0).getTime();
count(document.forms['day']['count<?php echo $t?>'], future<?php echo $t?>);
</script>
<?php } ?>
하면 ... 문제가 발생하네요 ...
http://dtd.mixskin.com/bbs/board.php?bo_table=f_made
딱 한군데만 나오네요 ...
아무래도 for 문 밖에 위치해야 할 듯 합니다.

그리고, 플 자체 오류가 있습니다.
+31일이 되네요 ...
답변 감사드리며 ... 다른 소스 한번 찾아 보겠습니다.
+31일이 되네요 ...
답변 감사드리며 ... 다른 소스 한번 찾아 보겠습니다.

wr_6에는 "2012,05,25" 이런 값이 넘어오는게 맞는건가요?
그렇다면
var future<?php echo $t?>=new Date(<?php echo substr($str,0,4)?>,<?php echo substr($str,5,2)?>,<?php echo substr($str,8,2)?>,0,0,0,0).getTime();
이게 되야겠네요.. substr의 인자값이 틀려있네요..
그리고 루프문 안에서 count()과 form name=day의 선언이 계속 이뤄지네요..
일단 어느정도 고쳐봤습니다.
setTimeout 1은 검나 빠른거 같아서 그냥 1초로 1000 잡았습니다.
그리고 마지막 초에서도 소수점이하가 보이길래 floor()해줬습니다.
<script type="text/javascript">
function count(ele, future){
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=Math.floor(mod/1000);
ele.value=year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초';
setTimeout(function() { count(ele, future); }, 1000);
}
</script>
<form name='day' action=''>
<?php
for ($t=0; $t<count($list); $t++) {
$str = "{$list[$t]['wr_6']}";
?>
<input type='text' name='count<?php echo $t?>' size='30' /> <br />
<script type="text/javascript">
var future<?php echo $t?>=new Date(<?php echo substr($str,0,4)?>,<?php echo substr($str,5,2)?>,<?php echo substr($str,8,2)?>,0,0,0,0).getTime();
count(document.forms['day']['count<?php echo $t?>'], future<?php echo $t?>);
</script>
<?php } ?>
</form>
그렇다면
var future<?php echo $t?>=new Date(<?php echo substr($str,0,4)?>,<?php echo substr($str,5,2)?>,<?php echo substr($str,8,2)?>,0,0,0,0).getTime();
이게 되야겠네요.. substr의 인자값이 틀려있네요..
그리고 루프문 안에서 count()과 form name=day의 선언이 계속 이뤄지네요..
일단 어느정도 고쳐봤습니다.
setTimeout 1은 검나 빠른거 같아서 그냥 1초로 1000 잡았습니다.
그리고 마지막 초에서도 소수점이하가 보이길래 floor()해줬습니다.
<script type="text/javascript">
function count(ele, future){
var now=new Date().getTime();
var far=future-now;
var year=Math.floor(far/31536000000); // 365일은 31536000초
// Math.floor(a/b)는 a/b의 몫을 구함. a%b는 나머지를 구함.
var mod=far%31536000000;
var days=Math.floor(mod/86400000);// 하루는 86400초
mod=mod%86400000;
var hours=Math.floor(mod/3600000); // 1시간은 3600초
mod=mod%3600000;
var mins=Math.floor(mod/60000); // 1분은 60초
mod=mod%60000;
var sec=Math.floor(mod/1000);
ele.value=year+'년 '+days+'일 '+hours+'시간 '+mins+'분 '+sec+'초';
setTimeout(function() { count(ele, future); }, 1000);
}
</script>
<form name='day' action=''>
<?php
for ($t=0; $t<count($list); $t++) {
$str = "{$list[$t]['wr_6']}";
?>
<input type='text' name='count<?php echo $t?>' size='30' /> <br />
<script type="text/javascript">
var future<?php echo $t?>=new Date(<?php echo substr($str,0,4)?>,<?php echo substr($str,5,2)?>,<?php echo substr($str,8,2)?>,0,0,0,0).getTime();
count(document.forms['day']['count<?php echo $t?>'], future<?php echo $t?>);
</script>
<?php } ?>
</form>