JavaScript写时间倒计时

JavaScript的两个计时器setInterval 和setTimeout 来简单的写一个当天的时间倒计时,主要就是时间的计算,先看下实现当天时间的倒计时,全部代码:

<html>
	<head>
		<meta charset="UTF-8"/>
		<title>count down</title>
		<style type="text/css">
			body{
				background-color: #00502D;
				color: #ffffff;
			}
			#show{
				position: absolute;
				bottom: 0;
				right: 20px;
			}
		</style>
	</head>
	<body>
		<h2 id="show"></h2>
		<script type="text/javascript">
			var fuTime = new Date("2018/6/26 18:00:00");
			var timer = "";
			//setInterval 延时1秒
//			timer = setInterval(function (){
//				var now = new Date();
//				var hour = parseInt((fuTime-now)/1000/60/60);
//				hour<10 && (hour = "0"+hour);
//				var min = parseInt((fuTime-now)%(1000*60*60)/1000/60);
//				min<10 && (min = "0"+min);
//				var sec = parseInt((fuTime-now)%(1000*60)/1000);
//				sec<10 && (sec = "0"+sec);
//				document.getElementById("show").innerHTML = hour+" : "+min+" : "+sec;
//				if(hour==0 && min==0 && sec==0){
//					clearTimeout(timer);
//					timer = null;
//				}
//			},1000);
			
			//setTimeout
			(function show(){
				var now = new Date();
				var hour = parseInt((fuTime-now)/1000/60/60);
				hour<10 && (hour = "0"+hour);
				var min = parseInt((fuTime-now)%(1000*60*60)/1000/60);
				min<10 && (min = "0"+min);
				var sec = parseInt((fuTime-now)%(1000*60)/1000);
				sec<10 && (sec = "0"+sec);
				document.getElementById("show").innerHTML = hour+" : "+min+" : "+sec;
				timer = setTimeout(show,1000);
				if(hour==0 && min==0 && sec==0){
					clearTimeout(timer);
					timer = null;
				}
			})();
			
		</script>
	</body>
</html>

其中两种方法都写了,也注释出来了,setInterval的话会有一秒的延时,我没有处理,如果想用这个方法,那就在计时器开始之前先计算结果把它显示一下就可以了

如果想要倒计时天数,那就这样写,只写JS部分:

var now = new Date();
var day = parseInt((fuTime-now)/1000/60/60/24);
var hour = parseInt((fuTime-now)%(1000*60*60*24)/1000/60/60);
var min = parseInt((fuTime-now)%(1000*60*60)/1000/60);
var sec = parseInt((fuTime-now)%(1000*60)/1000);
document.getElementById("show").innerHTML =day+" 天 "+ hour+" 小时 "+min+" 分钟 "+sec+" 秒 ";
timer = setTimeout(show,1000);
if(hour==0 && min==0 && sec==0){
	clearTimeout(timer);
	timer = null;
}
主要就是计算的麻烦一点


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值