溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

實(shí)時(shí)顯示倒計(jì)時(shí)狀態(tài)demo(附詳細(xì)的注釋?zhuān)?/h1>
發(fā)布時(shí)間:2020-08-02 18:34:13 來(lái)源:網(wǎng)絡(luò) 閱讀:982 作者:jaty0817 欄目:web開(kāi)發(fā)

本程序包含多個(gè)文件來(lái)講解,當(dāng)然你也可以根據(jù)實(shí)際情況進(jìn)行合并。

index.html(非必須):首頁(yè)顯示,時(shí)間設(shè)定,測(cè)試的時(shí)候可以直接在文件里指定時(shí)間。

gettime.php(主要文件1):實(shí)時(shí)倒計(jì)時(shí)狀態(tài)顯示

gettime2.php(主要文件2):gettime每1秒請(qǐng)求一次的文件,返回此刻請(qǐng)求得到的數(shù)據(jù)

源碼如下:

/** index.html **/
<!-- 下面的JS代碼是一個(gè)簡(jiǎn)單的對(duì)輸入時(shí)間檢測(cè)的腳本,可以不要-->
<form action="gettime.php" method="post">
請(qǐng)輸入活動(dòng)開(kāi)始時(shí)間:<input id="hour" type="text" name="hour" size="2" />點(diǎn)<input id="min" type="text" name="min" size="2" />分<input id="sec" type="text" name="sec" size="2" />秒
<input type="submit" value="設(shè)定" />
</form>
<script type="text/javascript">
window.onload=function(){
	var hour = document.getElementById('hour');
	hour.onblur=function(){
		if(hour.value>23||hour.value<0){
			alert('時(shí)間超出范圍');
			return false;
		}
	}
	var min = document.getElementById('min');
	min.onblur=function(){
		if(min.value>59||min.value<0){
			alert('時(shí)間超出范圍');
			return false;
		}
	}
	var sec = document.getElementById('sec');
	sec.onblur=function(){
		if(sec.value>59||sec.value<0){
			alert('時(shí)間超出范圍');
			return false;
		}
	}
}
</script>

/** gettime.php **/
<?php
echo "設(shè)定的時(shí)間是:".$hour.":".$min.":".$sec.",活動(dòng)還未開(kāi)始,倒計(jì)時(shí)狀態(tài)中<br />";
}
?>
/** ajax請(qǐng)求到的數(shù)據(jù)會(huì)存放在id='hh'的這個(gè)DIV里,
你也可以將返回的數(shù)據(jù)放在任何你想放的位置,只需要將它的id設(shè)置為與js里id相同即可。
注意這個(gè)腳本需要jQuery的支持(下載jq見(jiàn)文章結(jié)尾),所以請(qǐng)將jq文件引用到位。
**/
<div id="hh"></div>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script type="text/javascript">
function gett(){
$(function(){
        //接收index傳過(guò)來(lái)的時(shí)間參數(shù),并用ajax傳遞給gettime2.php進(jìn)行判斷
        //測(cè)試的時(shí)候可以不需要index,直接在這里指定時(shí)間
	var h='<?php echo $hour;?>';
	var m='<?php echo $min;?>';
	var s='<?php echo $sec;?>';
	$.ajax({
		url:'gettime2.php?h='+h+'&m='+m+'&s='+s,
		type:"POST",
		data:{action:"guesslike"},
		dataType:"html",
		timeout:3000,
		cache:false,
		success:function(re){
			$('#hh').html(re);
		}
		})
});
setTimeout("gett()",1000) 
}
gett();
</script>

/* gettime2.php 核心文件 */
<?php
date_default_timezone_set("PRC");
//接收時(shí)間
$seth=$_REQUEST['h'];
$seti=$_REQUEST['m'];
$sets=$_REQUEST['s'];
$time=time();
//echo '<br />當(dāng)前時(shí)間是:'.date("H:i:s" ,$time);
//判斷小時(shí)剩余>1
if($seth>date('H',$time)){
	$h=$seth-date('H',$time);
	//判斷分鐘剩余>1
	if($seti>date('i',$time)){
		$i=$seti-date('i',$time);
		//判斷秒剩余>1
		if($sets>date('s',$time)){
			$s=$sets-date('s',$time);
		}else{
			$s=$sets-date('s',$time)+59;
			$i=$i-1;
		}
	}else{ //分鐘剩余0
		$i=$seti-date('i',$time)+59;
		$h=($h-1)>0?($h-1):0; //如果小時(shí)被借去1后等于0,則不用顯示小時(shí)了
		if($sets>date('s',$time)){
			$s=$sets-date('s',$time);
		}else{
			$s=$sets-date('s',$time)+59;
		}
	}
	if($h!=0){
		echo "<br />剩余時(shí)間還有:".$h."小時(shí)".$i."分".$s."秒";
	}else{
		echo "<br />剩余時(shí)間還有:".$i."分".$s."秒";
	}	
}else{
	//判斷小時(shí)剩余=0
	$h=0;
	if($seti>date('i',$time)){
		$i=$seti-date('i',$time);
		//判斷秒剩余>1
		if($sets>date('s',$time)){
			$s=$sets-date('s',$time);
		}else{
			$s=$sets-date('s',$time)+59;
			$i=$i-1;
		}
		echo "<br />剩余時(shí)間還有:".$i."分".$s."秒";
	}else{ //分鐘剩余0
		if($sets<=date('s',$time)){
			echo "活動(dòng)已經(jīng)開(kāi)始了";
		}else{
// 			$i=0; //分鐘為0,可以顯示,也可以不顯示,本程序不顯示
			$s=$sets-date('s',$time);
		}
		if($s>=0){
			echo "<br />剩余時(shí)間還有:".$s."秒";
		}else return false;	
	}
}
?>
##########################END################################

以上3段源碼,復(fù)制過(guò)去,文件名對(duì)應(yīng),打開(kāi)index就可以看到效果。

官方源jQuery2.1.1點(diǎn)此下載,各位也可以自行百度下載或者官方網(wǎng)站去下載。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI