>백엔드 개발 >PHP 튜토리얼 >javascript-PHP로 2개의 값이 쓰여진 카운트다운이 있는데 어떻게 작성해야 할지 모르겠습니다. 전문가가 적어줄 수 있나요?

javascript-PHP로 2개의 값이 쓰여진 카운트다운이 있는데 어떻게 작성해야 할지 모르겠습니다. 전문가가 적어줄 수 있나요?

WBOY
WBOY원래의
2016-08-08 08:49:44997검색

javascriptjsphp timestamp countdown

다른 사람 웹사이트의 순환 카운트다운에 푹 빠졌습니다. 코드를 확인해보니 해당 웹사이트가 3일 주기로 자동으로 카운트다운할 수 있다는 것을 알게 되었습니다. 관심있는 웹사이트의 코드에 뭔가가 있다는 것을 발견했습니다. var serverTime과 var Htime 두 값은 계속해서 변경됩니다. 제가 복사한 소스 코드는 고정된 값이므로 카운트다운이 끝난 후에 표시됩니다. 0이면 카운트다운이 다시 시작되지 않습니다. 이 두 값은 PHP로 작성해야 하기 때문에 소스코드를 볼 때만 결과를 볼 수 있습니다.
아래 두 값으로 php 코드 작성하는 방법 (아래 현재 값은 복사했을 때의 값이고, 1000은 고정이고, 나머지 두 숫자는 계속해서 변하고 있습니다)
var serverTime = 1470186666 * 1000;
var Htime = 226134000;
시간 코드는 다음과 같습니다(div 및 CSS는 복사되지 않음). 현재 날짜는 3일 후에 다시 시작할 수 있습니다. PHP 코드를 어떻게 얻는지 모르겠습니다

<code><script type="text/javascript">//var dateTimezz = new Date();//alert(dateTimezz);var serverTime = 1470186666 * 1000;var Htime = 226134000;jQuery(document).ready(function(){//var dateTime = new Date('Sun Dec 04 2015 00:00:00');//alert(dateTime.getTime());var dateTime = new Date();var difference = dateTime.getTime() - serverTime;var endTime = new Date().getTime()+Htime-difference;setInterval(function(){jQuery(".tlimit").each(function(){    var obja = jQuery(this);    var dateTimez = new Date();    var strDateList = daysBetween('2015-12-06',(dateTimez.getYear()+1900)+'-'+(dateTimez.getMonth()+1)+'-'+dateTimez.getDate()).toLocaleString();    //var strDateList = daysBetween('2015-12-06','2015-12-19').toLocaleString();    var chaday = Math.ceil(strDateList/3)*3;    //alert(chaday);    var str2 = 'TIME LIMIT: '+dateAdd("d", chaday-2, '2015/12/06').toLocaleString()+' - '+dateAdd("d", chaday, '2015/12/06').toLocaleString();obja.html(str2);});}, 10);setInterval(function(){jQuery(".t3").each(function(){var obj = jQuery(this);var dateTimea = new Date();var nMS=endTime - dateTimea.getTime();var myD=Math.floor(nMS/(1000 * 60 * 60 * 24));var myH=Math.floor(nMS/(1000*60*60)) % 24;var myM=Math.floor(nMS/(1000*60)) % 60;var myS=Math.floor(nMS/1000) % 60;if(myD>= 0){    myD = ( (  myD  <  10  ) ?  "0"  :  "")+myD;    myH = ( (  myH  <  10  ) ?  "0"  :  "")+myH;    myM = ( (  myM  <  10  ) ?  "0"  :  "")+myM;    myS = ( (  myS  <  10  ) ?  "0"  :  "")+myS;    var str = '<i class="d">Day<br><b>' + myD+'</b></i><i class="h">Hou<br><b>'+myH+'</b></i><i class="m">Min<br><b>'+myM+'</b></i><i class="s">Sec<br><b>'+myS+'</b></i>';}else{    var str = '<i class="d">Day<br><b>00</b></i><i class="h">Hou<br><b>00</b></i><i class="m">Min<br><b>00</b></i><i class="s">Sec<br><b>00</b></i>';   }obj.html(str);});}, 10);});function daysBetween(DateOne,DateTwo) {  var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-')); var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1); var OneYear = DateOne.substring(0,DateOne.indexOf ('-')); var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-')); var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1); var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-')); var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);    return Math.abs(cha);}function  dateAdd(strInterval,  NumDay,  dtDate)  { var  dtTmp  =  new  Date(dtDate); if  (isNaN(dtTmp))  dtTmp  =  new  Date(); var ddTmp = new  Date(Date.parse(dtTmp)  +  (86400000  *  NumDay));return  (ddTmp.getYear()+1900)+'.'+(ddTmp.getMonth()+1)+'.'+ddTmp.getDate(); /*switch  (strInterval)  { case  "s":return  new  Date(Date.parse(dtTmp)  +  (1000  *  NumDay)); case  "n":return  new  Date(Date.parse(dtTmp)  +  (60000  *  NumDay)); case  "h":return  new  Date(Date.parse(dtTmp)  +  (3600000  *  NumDay)); case  "d":return  ((new  Date(Date.parse(dtTmp)  +  (86400000  *  NumDay))).getYear()+1900)+'.'+((new  Date(Date.parse(dtTmp)  +  (86400000  *  NumDay))).getMonth()+1)+'.'+(new  Date(Date.parse(dtTmp)  +  (86400000  *  NumDay))).getDate(); case  "w":return  new  Date(Date.parse(dtTmp)  +  ((86400000  *  7)  *  NumDay)); case  "m":return  new  Date(dtTmp.getFullYear(),  (dtTmp.getMonth())  +  NumDay,  dtTmp.getDate(),  dtTmp.getHours(),  dtTmp.getMinutes(),  dtTmp.getSeconds()); case  "y":return  new  Date((dtTmp.getFullYear()  +  NumDay),  dtTmp.getMonth(),  dtTmp.getDate(),  dtTmp.getHours(),  dtTmp.getMinutes(),  dtTmp.getSeconds()); } */} </script></code>

답글 내용:

NSTimer가 카운트다운을 작성합니다
--------- 안녕하세요 동지님, 저는 CSDN Q&A 로봇 Xiao N입니다. 참조 답변을 제공하십시오. 프로그래밍은 아직 성공하지 못했습니다. 동지들은 여전히 ​​열심히 노력해야 합니다!

<code>..以前帮人家写过的纯js,自己设定倒计时的时间就好,间接递归调用,会无限循环下去
//js部分
    var  time = 24*60*60*2; //倒计时两天的时间,自己设定
            //输出信息
            function begin(){
                var today=new Date()
                var day =today.getDate()
                var dat=today.getMonth()
                var future=day+2
                document.getElementById('now').innerHTML="现在时间"+dat+"月"+day+"倒计时开始"

                leasttime()

                document.getElementById("future").innerHTML="预计结束时间"+dat+"月"+future

            }
            //时间倒计时函数
            function leasttime(){

                var  ho=time/(60*60);
                var  mi=(time/60)%(60)
                var  se=time%60
                mi=parseInt(mi)
                ho=parseInt(ho)
                ho=checkTime(ho)
                se=checkTime(se)
                mi=checkTime(mi)
                time-=1;
                document.getElementById("last").innerHTML=ho+":"+mi+":"+se
                //倒计时结束
                if(time==0){
//              //重置计时器 ,再次开始计时
                time=30;
                begin()
                }
                setTimeout("leasttime()",1000);
            }
            //将时间的格式转化一下
            function checkTime(i)
            {
                if (i<10) 
                  {i="0" + i}
                  return i
            }

            //HTML部分
                <p id="now"></p>
        <p id="last"></p>
        <p id="future"></p>
        <button onclick="begin()">开始</button>
</code>
<code>  var curtime = Number("1470453405");//当前时间
  var endTime = Number("");//结束时间

    var timeoutlimit = groupEndTime-curtime;
    var countdown = timeoutlimit;
    runCountdown();
       function runCountdown () {
            var iDay,iHour,iMinute,iSecond;
            if (countdown >= 0) {
                iDay = parseInt(countdown/3600/24);
                iHour = parseInt((countdown/3600)%24);
                iMinute = parseInt((countdown/60)%60);
                iSecond = Number(countdown%60).toFixed(1);
                if(countdown<=0){
                    clearTimeout(timeoutlimit);
                    window.location.href = '/goods/item?id='+gid;
                } else {
                    if(countdown>(3600*24)){
                        $('#rigTime').html(iDay+'天'+iHour+'小时'+iMinute+'分'+iSecond+'秒');
                    }else{
                        $('#rigTime').html(iHour+'小时'+iMinute+'分'+iSecond+'秒');
                    }
                    countdown = (countdown-0.1).toFixed(1);

                    timeoutlimit = setTimeout("runCountdown()",100);
                }
            }
       }

</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.