테스트 사이트 - 개발 중인 베타 버전입니다

SCRIPT 질문 드립니다. 채택완료

그렌트힐 5년 전 조회 3,390

</p>

<p><?php

$a1 = '2020,06,05,19,20,00';

?>

<SCRIPT language=JavaScript> </p>

<p>function getTime() { </p>

<p>now = new Date(); </p>

<p>dday = new Date(<?php echo $a1; ?>);  // D-Day 날짜, 시간 정확하게 초단위기입.</p>

<p>days = (dday - now) / 1000 / 60 / 60 / 24; </p>

<p>daysRound = Math.floor(days); </p>

<p>hours = (dday - now) / 1000 / 60 / 60 - (24 * daysRound); </p>

<p>hoursRound = Math.floor(hours); </p>

<p>minutes = (dday - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound); </p>

<p>minutesRound = Math.floor(minutes); </p>

<p>seconds = (dday - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound); </p>

<p>secondsRound = Math.round(seconds); </p>

<p>document.getElementById("counter1").innerHTML = hoursRound; </p>

<p>document.getElementById("counter2").innerHTML = minutesRound; </p>

<p>document.getElementById("counter3").innerHTML = secondsRound; </p>

<p>newtime = window.setTimeout("getTime();", 1000); </p>

<p>} </p>

<p></SCRIPT></p>

<p>

 

카운트 해주는 SCRIPT 입니다.

 

계속 반복되는 시간 카운트로 만들고 싶은데요...

 

마지막 00 분 00초 가 된 이후에 다시 3분 짜리 카운트가 돌아가게 하려고 합니다.

(이건 무한반복입니다.)

 

00:00 될때 D-day 값을 매번 디비에 넣었다가 다시 불러오고..그래야 할까요?

근데 그건 아닌거 같기도 하고...그럴려면 해당 SCRIPT 가 있는 페이지를 새로고침하기 전에는

소용없을거 같거든요..

 

어떻게 하는게 좋을까요...조언좀 부탁드립니다. ㅜ

 

 

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

새로 작성했어요. 초단위가 애를 먹이네요.

 

   

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

그렌트힐
5년 전
대단하십니다. 이상없이 0 까지 갔다가 다시 카운트 합니다.
감사합니다. ^^
s
sinbi
5년 전
https://codepen.io/sinbi/pen/abdOOjd
ps. 덕분에 저도 공부가 되었습니다.

댓글을 작성하려면 로그인이 필요합니다.

원래 소스를 최대한 활용해서

 

</strong></p>

<p>    <SCRIPT language=JavaScript>    

        let now = new Date();

        var dday = new Date();

        dday.setSeconds(now.getSeconds()+5); // D-Day 날짜, 시간 정확하게 초단위기입.

        function getTime() {

            now = new Date();

            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.ceil(seconds);

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

            document.getElementById("counter2").innerHTML = minutesRound;

            document.getElementById("counter3").innerHTML = secondsRound;

            if( (minutesRound == '0') && (secondsRound == '0')  ){

                dday.setSeconds(now.getSeconds()+5);

                console.log(dday);

            }            

        }

        var myVar = setInterval(getTime, 1000);

    </SCRIPT></p>

<p><strong>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그렌트힐
5년 전
답변 감사드립니다.
작성해 주신것을 유심히 보았는데요..

해당 SCRIPT 가 원소스도 마찬가지구..
카운트를 하는데...5..4..3..2..1..다음에 0 아니구 60 이 표기 되네요.

그러다보니 취미생활님이 작성해주신 if 구문의 secondsRound == '0' 을 지나치는듯 합니다. ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인