시간카운트 자바스크립트 문의

시간카운트 자바스크립트 문의

QA

시간카운트 자바스크립트 문의

본문


<div id=count>
    <span id="counter1"></span>
    <p>일</p>
    <SPAN id="counter2"></SPAN>
    <p>시간</p>
    <SPAN id="counter3"></SPAN>
    <p>분</p>
    <SPAN id="counter4"></SPAN>
    <p>초</p>
</div>
 
 
<SCRIPT language=JavaScript> 
    function getTime() { 
    now = new Date(); 
    dday = new Date(2019,02,01,10,30,59); 
    // 원하는 날짜, 시간 정확하게 초단위까지 기입.
    days = (dday - now) / 1000 / 60 / 60 / 24; 
    daysRound = Math.floor(days); 
    hours = (dday - now) / 1000 / 60 / 60 - (24 * daysRound); 
    hoursRound = Math.floor(hours); 
    minutes = (dday - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound); 
    minutesRound = Math.floor(minutes); 
    seconds = (dday - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound); 
    secondsRound = Math.round(seconds); 
    document.getElementById("counter1").innerHTML = daysRound;
    document.getElementById("counter2").innerHTML = hoursRound;
    document.getElementById("counter3").innerHTML = minutesRound; 
    document.getElementById("counter4").innerHTML = secondsRound; 
    newtime = window.setTimeout("getTime();", 1000); 
    } 
</SCRIPT>
<SCRIPT>getTime()</SCRIPT>

 

위에가 구글에서 찾은 자바스크립트인데

한번에 div안에 넣는방식말고 일부로 숫자 하나하나에 스타일을 줘야하는 상황이라서 저렇게 따로따로 했습니다.

근데 시, 분, 초는 잘 나오는데 남은 일(day)은 어떻게 계산해야하는지 모르겠어요 ㅠㅠ

 

document.getElementById("counter1").innerHTML = daysRound;

 

이렇게 했는데 오늘이 29일이고 2월 1일까지 3일남았는데 30일 남았다고 뜨네요 ㅠㅠ 계산이 잘못된거같은데 도와주세요 ㅠㅠ

이 질문에 댓글 쓰기 :

답변 1


<div id="count">
    <span id="counter1"></span>
    <p>일</p>
    <span id="counter2"></span>
    <p>시간</p>
    <span id="counter3"></span>
    <p>분</p>
    <span id="counter4"></span>
    <p>초</p>
</div>
<script>
//디데이 종료 일자 설정
var countDownDate = new Date("January 31, 2019 06:00:00").getTime();
//1초마다 갱신되도록 함수 생성,실행
var x = setInterval(function() {
    // 오늘 날짜 등록
    var now = new Date().getTime();
    // 종료일자에서 현재일자를 뺀 시간
    var distance = countDownDate - now;
    // 각 변수에 일, 시, 분, 초를 등록
    var d = Math.floor(distance / (1000 * 60 * 60 * 24));
    var h = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var m = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var s = Math.floor((distance % (1000 * 60)) / 1000);
    document.getElementById("counter1").innerHTML = d;
    document.getElementById("counter2").innerHTML = h;
    document.getElementById("counter3").innerHTML = m;
    document.getElementById("counter4").innerHTML = s;
});
</script>

 

이렇게 했더니 잘되네요 ㅎㅎ

혼자 질문하고 혼자 답하지만 다른 분들도 필요하시면 참고해주세요!

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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