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>