实时显示倒计时状态demo(附详细的注释)

本程序包含多个文件来讲解,当然你也可以根据实际情况进行合并。

index.html(非必须):首页显示,时间设定,测试的时候可以直接在文件里指定时间。

gettime.php(主要文件1):实时倒计时状态显示

gettime2.php(主要文件2):gettime每1秒请求一次的文件,返回此刻请求得到的数据

源码如下:

/** index.html **/
<!-- 下面的JS代码是一个简单的对输入时间检测的脚本,可以不要-->
<form action="gettime.php" method="post">
请输入活动开始时间:<input id="hour" type="text" name="hour" size="2" />点<input id="min" type="text" name="min" size="2" />分<input id="sec" type="text" name="sec" size="2" />秒
<input type="submit" value="设定" />
</form>
<script type="text/javascript">
window.onload=function(){
	var hour = document.getElementById(‘hour‘);
	hour.onblur=function(){
		if(hour.value>23||hour.value<0){
			alert(‘时间超出范围‘);
			return false;
		}
	}
	var min = document.getElementById(‘min‘);
	min.onblur=function(){
		if(min.value>59||min.value<0){
			alert(‘时间超出范围‘);
			return false;
		}
	}
	var sec = document.getElementById(‘sec‘);
	sec.onblur=function(){
		if(sec.value>59||sec.value<0){
			alert(‘时间超出范围‘);
			return false;
		}
	}
}
</script>

/** gettime.php **/
<?php
echo "设定的时间是:".$hour.":".$min.":".$sec.",活动还未开始,倒计时状态中<br />";
}
?>
/** ajax请求到的数据会存放在id=‘hh‘的这个DIV里,
你也可以将返回的数据放在任何你想放的位置,只需要将它的id设置为与js里id相同即可。
注意这个脚本需要jQuery的支持(下载jq见文章结尾),所以请将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传过来的时间参数,并用ajax传递给gettime2.php进行判断
        //测试的时候可以不需要index,直接在这里指定时间
	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");
//接收时间
$seth=$_REQUEST[‘h‘];
$seti=$_REQUEST[‘m‘];
$sets=$_REQUEST[‘s‘];
$time=time();
//echo ‘<br />当前时间是:‘.date("H:i:s" ,$time);
//判断小时剩余>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; //如果小时被借去1后等于0,则不用显示小时了
		if($sets>date(‘s‘,$time)){
			$s=$sets-date(‘s‘,$time);
		}else{
			$s=$sets-date(‘s‘,$time)+59;
		}
	}
	if($h!=0){
		echo "<br />剩余时间还有:".$h."小时".$i."分".$s."秒";
	}else{
		echo "<br />剩余时间还有:".$i."分".$s."秒";
	}
}else{
	//判断小时剩余=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 />剩余时间还有:".$i."分".$s."秒";
	}else{ //分钟剩余0
		if($sets<=date(‘s‘,$time)){
			echo "活动已经开始了";
		}else{
// 			$i=0; //分钟为0,可以显示,也可以不显示,本程序不显示
			$s=$sets-date(‘s‘,$time);
		}
		if($s>=0){
			echo "<br />剩余时间还有:".$s."秒";
		}else return false;
	}
}
?>
##########################END################################

以上3段源码,复制过去,文件名对应,打开index就可以看到效果。

官方源jQuery2.1.1点此下载,各位也可以自行百度下载或者官方网站去下载。

时间: 2024-10-11 08:35:19

实时显示倒计时状态demo(附详细的注释)的相关文章

分贝显示器,实时显示声音强度(附源码)

使用 摄像头.麦克风.扬声器测试程序 一文中提到的技术,我们可以基本实现QQ的语音视频测试向导的功能了.但是,我觉得语音测试这块的体验还可以做得更好一点,就像QQ语音测试一样,实时显示麦克风采集到的声音的强度: 接下来,我们做个小demo,来实现类似的功能.先上demo运行起来的截图: (界面确实比较丑,我们这里的重点在于技术方面如何实现,如果你愿意花点时间,可以将其美化得跟QQ的那个一样漂亮^_^) 1.实现思路 实现这个小例子的主要思路如下: (1)使用OMCS采集和播放从麦克风的输入数据(

Android静态图片人脸识别的完整demo(附完整源码)

Demo功能:利用android自带的人脸识别进行识别,标记出眼睛和人脸位置.点击按键后进行人脸识别,完毕后显示到imageview上. 第一部分:布局文件activity_main.xml [html] view plaincopyprint? <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co

15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码)

15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码) 前言 设计模式是一个程序员进阶高级的必备技巧,也是评判一个工程师工作经验和能力的试金石.设计模式是程序员多年工作经验的凝练和总结,能更大限度的优化代码以及对已有代码的合理重构.作为一名合格的前端工程师,学习设计模式是对自己工作经验的另一种方式的总结和反思,也是开发高质量,高可维护性,可扩展性代码的重要手段. 我们所熟知的金典的几大框架,比如jquery, react, vue内部也大量应用了设计模式, 比如观察

基于Jquery插件Uploadify实现实时显示进度条上传图片

网址:http://www.jb51.net/article/83811.htm 这篇文章主要介绍了基于Jquery插件Uploadify实现实时显示进度条上传图片的相关资料,感兴趣的小伙伴们可以参考一下 先了解了解Uploadify,具体内容如下 Uploadify是一个简单易用的多文件上传方案.作为一个Jquery插件,Uploadify使用简单,并具有高度的定制性. Uploadify特性: Uploadify简单说来,是基于Jquery的一款文件上传插件.它的功能特色总结如下: 1).支

Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附详细代码] 标签: SparkECLIPSEJAVAMAVENwindows 2016-06-18 22:35 405人阅读 评论(0) 收藏 举报  分类: spark(5)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 本文旨在记录初学Spark时,根据官网快速

AngularJS判断checkbox/复选框是否选中并实时显示

最近做了一个选择标签的功能,把一些标签展示给用户,用户选择自己喜欢的标签,就类似我们在购物网站看到的那种过滤标签似的: 简单的效果如图所示: 首先看一下html代码: 1 <!DOCTYPE html> 2 <html data-ng-app="App"> 3 <head> 4 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/

ss命令,显示socket状态

ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用.快速.有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息: 所有的TCP sockets 所有的UDP sockets 所有ssh/ftp/ttp/https持久连接 所有连接到Xse

php -- 解决php连接sqlserver2005中文乱码问题(附详细解决方法)

@[email protected]~~ --php5.2 --phpstudy --apache --sqlserver2005 @[email protected]~~问题描述 问题一:php连接sqlsever2005,输入中文,然后查询sqlserver中对应的数据,由于提交中文是UTF-8,而sqlserver的中文为GBK,所以字段无法匹配,没有查询结果. 问题二,php连接sqlsever2005,读取数据表数据,由于中文是UTF-8,而sqlserver的中文为GBK,读出来的中

CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan)

CENTOS7 安装openstack mitaka版本(最新整理完整版附详细截图和操作步骤,添加了cinder和vxlan,附上个节点的配置文件) 实验环境准备: 为了更好的实现分布式mitaka版本的效果.我才有的是VMware的workstations来安装三台虚拟机,分别来模拟openstack的controller节点 compute节点和cinder节点.(我的宿主机配置为 500g 硬盘 16g内存,i5cpu.强烈建议由条件的朋友将内存配置大一点,因为我之前分配的2g太卡.) 注