경매사이트 등에서 남은시간 이미지로 표시하기 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

경매사이트 등에서 남은시간 이미지로 표시하기 정보

경매사이트 등에서 남은시간 이미지로 표시하기

첨부파일

time_left.zip (8.7K) 117회 다운로드 2011-10-20 21:32:33

본문

필요해서 여기저기 참고해서 만들어봤습니다.
모든 숫자들을 하나의 이미지 파일에 넣어 필요한 숫자부분만을 골라서 표시하도록 만들었습니다.
깜박거림 없이 잘 돌아갑니다. 글씨들이 좀 크면 이미지 새로 만들고 background image 불러오는 부분 가로수치들 바꿔줘야 합니다.
배워가며 만든거라 필요없는 부분도 있을 듯 싶고, 코드도 단축될 수 있을지도 모르겠네요.
응용해서 변형하면 쓸만한 소스가 될 듯 합니다.
저는 남은 시간이 1일 이상이면 남은 일수만 보이고,
1일 미만이면 시간만,
1시간 미만이면 분과 초만,
1분 미만이면 초만 보이게 만들어 적용하고 있습니다.
-------------------------------------------
numbers.png 파일은 그누보드 메인 img 폴더에 넣습니다.
left_time.php는 그누보드 메인에 넣었으면
<? include("$g4[path]/left_time.php") ?>
이렇게 불러오던지 아님 그냥 필요한 페이지에 전체 복사해서 넣으셔도 됩니다.
 
남은 일수는 99일(2자리수)까지만 출력합니다. 더 필요하시면 '일'부분에 100단위 추가하도록 스크립트 추가하셔야 합니다.
남은시간이 없으면'종료'표시 됩니다.
-------------------------------------------
left_time.php 중 $target_time 에 원하는 종료시간을 정해주셔야 합니다.
 
<?
$target_time = '11-12-20 23:59:59'; // 종료시간 설정 $target_time = $view[wr_1] 등으로 수정
$left_time = (int)(strtotime($target_time) - $g4['server_time']);
?>
<script type="text/javascript">
<!--
$(document).ready(function() {
 try {
  document.execCommand("BackgroundImageCache", false, true);
 } catch(ignored) {
 }
 
 // 남은시간 갱신
 var timeLeft = <?=$left_time?>;
 var updateLeftTime = function() {
  timeLeft = (timeLeft <= 0) ? 0 : -- timeLeft;
  if (timeLeft >= 1) {
  var days = Math.floor(timeLeft / 86400);
  var hours = Math.floor((timeLeft - 86400 * days) / 3600);
  var minutes = Math.floor((timeLeft - (86400 * days) - (3600 * hours)) / 60);
  var seconds = timeLeft % 60;
  var bg_prefix = "<div style=\"width:19px;height:40px;background:url('<?=$g4[path]?>/img/numbers.png') no-repeat scroll ";
  var bg_suffix = "px 0px transparent;\"></div>";
  $('#td1').html(bg_prefix + (-(Math.floor((days % 100) / 10))*19) + bg_suffix);
  $('#td2').html(bg_prefix + (-(days % 10)*19) + bg_suffix);
  $('#th1').html(bg_prefix + (-(Math.floor((hours % 100) / 10))*19) + bg_suffix);
  $('#th2').html(bg_prefix + (-(hours % 10)*19) + bg_suffix);
  $('#tm1').html(bg_prefix + (-(Math.floor(minutes / 10))*19) + bg_suffix);
  $('#tm2').html(bg_prefix + (-(minutes % 10)*19) + bg_suffix);
  $('#ts1').html(bg_prefix + (-(Math.floor(seconds / 10))*19) + bg_suffix);
  $('#ts2').html(bg_prefix + (-(seconds % 10)*19) + bg_suffix);
  $('#ts1').html(bg_prefix + (-(Math.floor(seconds / 10))*19) + bg_suffix);
  $('#ts2').html(bg_prefix + (-(seconds % 10)*19) + bg_suffix);
  $('#left_time').show();
  } else {
  $('#time_end').show();
  $('#left_time').hide();
  }
 }
 
 updateLeftTime();
 setInterval(updateLeftTime, 1000);
 
});
-->
</script>
<style type="text/css">
.time{position:relative;}
.time .hms{position:absolute}
.time .hms:after{display:block;clear:both;content:''}
.time .hms span{float:left}
.time .hms .timer{width:19px;height:40px;}
.time .hms .timer_day{width:30px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -190px 0px transparent;}
.time .hms .timer_hour{width:63px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -219px 0px transparent;}
.time .hms .timer_min{width:33px;height:40px;margin-right:4px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -282px 0px transparent;}
.time .hms .timer_sec{width:34px;height:40px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -316px 0px transparent;}
.time .hms .timer_end{width:63px;height:40px;background:url("<?=$g4['path']?>/img/numbers.png") no-repeat scroll -350px 0px transparent;}
</style>
<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
 <tr>
  <td height="40" valign="top">
  <!-- 남은시간 시작 -->
  <div id="left_time" class="time">
   <div class="hms">
    <span id="td1" class="timer"></span>
    <span id="td2" class="timer"></span>
    <span id="td" class="timer_day"></span>
    <span id="th1" class="timer"></span>
    <span id="th2" class="timer"></span>
    <span id="th" class="timer_hour"></span>
    <span id="tm1" class="timer"></span>
    <span id="tm2" class="timer"></span>
    <span id="tm" class="timer_min"></span>
    <span id="ts1" class="timer"></span>
    <span id="ts2" class="timer"></span>
    <span id="ts" class="timer_sec"></span>
   </div>
  </div>
  <!-- 남은시간 끝 -->
  <!-- 종료시 시작 -->
  <div id="time_end" class="time" style="display:none">
   <div class="hms">
    <span class="timer_end"></span>
   </div>
  </div>
  <!-- 종료시 끝 -->
  </td>
 </tr>
</table>
-------------------------------------------
추천
4

댓글 2개

음... 뒤로가기했다 되돌아가기 할때 지난시간으로 다시 카운팅되는 문제는 다른 유명한 사이트들도 마찬가지 문제가 있군요. 문제가 될만도 한데... 소셜 커머스 사이트들 모두 그런 듯 보입니다.
전체 5 |RSS

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT