묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
시간 관련 함수 질문입니다.
2003.04.13 07:20
한가지 질문좀 드릴께요 제가 타경매사이트에서 쓸만한 경매스크립트를 구했는데 이상하게 그 사이트에서는 새로고침을 해도 시간이 제대로 줄어듭니다.
그런데 제가 그 스크립을 재 홈에서 적용해본 상태에서 새로고침을 하면 다시 첨부터 카운터다운이 되더군요 아무래도 php언어가 들어가 있는거 같은데 이거때문에 막혀서 일주일째 아무것도 못하고 잇습니다. 한번만 봐주셨으면 합니다.
제가 쓰려는 스크립은 이겁니다..
<style type="text/css">
BODY,TD,SELECT,input,DIV,form,TEXTAREA,center,option,pre,blockquote {font-size:8pt; font-family:tahoma,verdana,굴림; color:666666; line-height:145%}
A:link {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none;}
A:visited {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none;}
A:active {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none;}
A:hover {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none}
</style>
<script language="javascript">
function viewMsg(strDisp) {
if (document.readyState == 'complete') {
if ( parseInt(0) == 940 && (parseInt(document.uniform.want.value) > parseInt(0)) ) {
strDisp = "바로구매마감";
}
document.uniform.txtTime.value = strDisp;
}
}
var itemTime = new Date(1970,1,0,0,0,07);
var strTime;
var strDisp;
// 시간 조절
var remainTime = itemTime.getSeconds() - 1;
itemTime.setSeconds(remainTime);
function getTime1() {
if ( itemTime.getSeconds() == 30 || itemTime.getSeconds() == 00 ) {
remainTime = itemTime.getSeconds() - 1; //2
} else {
remainTime = itemTime.getSeconds() - 1;
}
itemTime.setSeconds(remainTime);
setTimeout("getTime1()",1000);
}
function viewTime() {
var strDisp = "";
if (itemTime.getDate() > 28 ) {
strTime = "";
} else {
strTime = itemTime.getDate() + "일 ";
}
strTime += itemTime.getHours() + "시간 " + itemTime.getMinutes() + "분 " + itemTime.getSeconds() + "초";
//alert(strTime);
if ( itemTime.getDate() > 28 && itemTime.getHours() == 0 && itemTime.getMinutes() == 0
&& itemTime.getSeconds() == 0 ) {
strDisp = "입찰마감";
viewMsg(strDisp);
for ( i = 0 ; i < document.all.vv.length ; i++ ) {
document.all.vv[i].style.visibility= document.all.vv[i].style.visibility=='hidden' ? '' : 'hidden';
}
for ( i = 0 ; i < document.all.d.length ; i++ ) {
document.all.d[i].style.display= document.all.d[i].style.display=='none' ? '' : 'none';
}
return;
} else {
strDisp = strTime;
viewMsg(strDisp);
}
if ( strDisp != "입찰마감" || strDisp != "구매마감" ) {
setTimeout("viewTime()",1000);
}
}
getTime1();
viewTime();
</script>
<form name="uniform" method="post">
<input type=text id="txtTime" size=30 style='color:red;font-size:12; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px' readonly>
<table><tr>
<td align="right" id=vv style="visibility:''"><b id=d style="display:''">
<input type=submit value="입찰" accesskey="s" class=submit style="font-size:11px;height:20">
</b></td>
</tr>
</table>
<table>
<tr bgcolor="#E4F3F9">
<td align="center" >
<B id=d style="display:''">
<br>
본 상품의 판매자
yallge
님과 상품구매계약함을 의미합니다.<br>
</B>
<B id=d style="display:none">경매 종료된 상품 입니다.</B>
</font>
</td>
</tr>
</table>
어떻게 해야 제홈에서도 새로고침을 해도 이어져서 카운다운이 될까요?
지금은 새로고침하면 다시 첨부터 카운트다운이 되네요-,.-;;
php언어가 삽입되어 있는거 같은데..
도저히 저의 실력으론 안되서 질문드립니다.
이주일째 헤매고 잇는데 누구 한명 안가르쳐주더군요-,.-;;
꼭 부탁드립니다.
그런데 제가 그 스크립을 재 홈에서 적용해본 상태에서 새로고침을 하면 다시 첨부터 카운터다운이 되더군요 아무래도 php언어가 들어가 있는거 같은데 이거때문에 막혀서 일주일째 아무것도 못하고 잇습니다. 한번만 봐주셨으면 합니다.
제가 쓰려는 스크립은 이겁니다..
<style type="text/css">
BODY,TD,SELECT,input,DIV,form,TEXTAREA,center,option,pre,blockquote {font-size:8pt; font-family:tahoma,verdana,굴림; color:666666; line-height:145%}
A:link {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none;}
A:visited {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none;}
A:active {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none;}
A:hover {font-family:tahoma,굴림;font-size:8pt;color:023651;text-decoration:none}
</style>
<script language="javascript">
function viewMsg(strDisp) {
if (document.readyState == 'complete') {
if ( parseInt(0) == 940 && (parseInt(document.uniform.want.value) > parseInt(0)) ) {
strDisp = "바로구매마감";
}
document.uniform.txtTime.value = strDisp;
}
}
var itemTime = new Date(1970,1,0,0,0,07);
var strTime;
var strDisp;
// 시간 조절
var remainTime = itemTime.getSeconds() - 1;
itemTime.setSeconds(remainTime);
function getTime1() {
if ( itemTime.getSeconds() == 30 || itemTime.getSeconds() == 00 ) {
remainTime = itemTime.getSeconds() - 1; //2
} else {
remainTime = itemTime.getSeconds() - 1;
}
itemTime.setSeconds(remainTime);
setTimeout("getTime1()",1000);
}
function viewTime() {
var strDisp = "";
if (itemTime.getDate() > 28 ) {
strTime = "";
} else {
strTime = itemTime.getDate() + "일 ";
}
strTime += itemTime.getHours() + "시간 " + itemTime.getMinutes() + "분 " + itemTime.getSeconds() + "초";
//alert(strTime);
if ( itemTime.getDate() > 28 && itemTime.getHours() == 0 && itemTime.getMinutes() == 0
&& itemTime.getSeconds() == 0 ) {
strDisp = "입찰마감";
viewMsg(strDisp);
for ( i = 0 ; i < document.all.vv.length ; i++ ) {
document.all.vv[i].style.visibility= document.all.vv[i].style.visibility=='hidden' ? '' : 'hidden';
}
for ( i = 0 ; i < document.all.d.length ; i++ ) {
document.all.d[i].style.display= document.all.d[i].style.display=='none' ? '' : 'none';
}
return;
} else {
strDisp = strTime;
viewMsg(strDisp);
}
if ( strDisp != "입찰마감" || strDisp != "구매마감" ) {
setTimeout("viewTime()",1000);
}
}
getTime1();
viewTime();
</script>
<form name="uniform" method="post">
<input type=text id="txtTime" size=30 style='color:red;font-size:12; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px' readonly>
<table><tr>
<td align="right" id=vv style="visibility:''"><b id=d style="display:''">
<input type=submit value="입찰" accesskey="s" class=submit style="font-size:11px;height:20">
</b></td>
</tr>
</table>
<table>
<tr bgcolor="#E4F3F9">
<td align="center" >
<B id=d style="display:''">
<br>
본 상품의 판매자
yallge
님과 상품구매계약함을 의미합니다.<br>
</B>
<B id=d style="display:none">경매 종료된 상품 입니다.</B>
</font>
</td>
</tr>
</table>
어떻게 해야 제홈에서도 새로고침을 해도 이어져서 카운다운이 될까요?
지금은 새로고침하면 다시 첨부터 카운트다운이 되네요-,.-;;
php언어가 삽입되어 있는거 같은데..
도저히 저의 실력으론 안되서 질문드립니다.
이주일째 헤매고 잇는데 누구 한명 안가르쳐주더군요-,.-;;
꼭 부탁드립니다.
댓글 4
-
행복한고니
2003.04.13 09:07
-
絶世美男@
2003.04.13 09:29
앗 답변해주셔서 감사합니다.
자바스크립안에도 php를 저런식으로 넣을수가 있었군요.. 전 모르고 잇었다는...-,.-;;
DB에서 경매종료일의 UNIXTIME을 뽑아와야 한다는 말은 잘 이해가 안가서 그런데 제말이 맞는지 모르겟네요
전 일단 제로보드에다가 경매소스를 적용시키려고 합니다.
글쓰기에서 폼을 하나더 추가를 했구요
그 폼에서 마감 날짜를 선택할수 있게 해놨지요
그 소스는 이걸 써서 값을 제로보드 디비로 넘깁니다.
<select name='monty'>
<?
for($i=1 ; $i<=12 ; $i++) {
$selected = $i==date("n") ? "selected":"";
?>
<option value='<?=$i?>' <?=$selected?>><?=$i?>월</option>
<?
}
?>
</select>
<select name='day'>
<?
for($i=1;$i<=31;$i++) {
$selected = $i==date("j") ? "selected":"";
?>
<option value='<?=$i?>' <?=$selected?>><?=$i?>일</option>
<?
}
?>
</select>
<input type=text name=from_si size=2 maxlength=2 value='<?=date("H")?>'>시
<input type=text name=fromMinute size=2 maxlength=2 value='<?=date("i")?>'> -
絶世美男@
2003.04.13 09:32
제가 제대로 이해를 한건지 모르겟습니다.
고니님이 갈켜주신 소스를 적용시키고선 새로고침을 해봐도 마찬가지더군요
고니님이 말하신 db에서 경매종료일의 UNIXTIME을 뽑아와야 새로고침하면 계속 이어져서 카운트다운이 되는것이 맞는지요?
http://www.goodfunding.com/wwwpcbang/a.php
이것이 적용시킨 페이지입니다. -
絶世美男@
2003.04.13 09:36
암튼 답변 햐주신거 정말 고맙습니다.^^
요 부분을...
<?php
$diff = 경매종료일의UNIXTIME - time();
echo "var itemTime = new Date($diff);";
?>
으로 바꾸시면 됩니다.
다만, DB에서 경매종료일의 UNIXTIME을 뽑아오셔야 하는데 그건 하셨는지...?