本文实例讲述了JS实现针对给定时间的倒计时功能。分享给大家供大家参考,具体如下:有
本文实例讲述了JS实现针对给定时间的倒计时功能。分享给大家供大家参考,具体如下:
有时候,网站需要一个倒计时的特效来庆祝某些特别的日子。自己也实现了一个,占用内存也很小噢。其原理就是每隔一秒执行一次处理函数,将终点时间和现在的时间比较然后换算之后显示对应的值。
效果如下:
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>倒计时</title>
</head>
<body>
<input type="text" name="time" id="time" value="2017-09-22" />
<input type="button" name="okbtn" id="okbtn" value="确认" />
<br />
<p id="textp">这里显示倒计时</p>
</body>
<script type="text/javascript">
var okbtn=document.getElementById("okbtn");
textp=document.getElementById("textp");
okbtn.onclick=function(){
var time=document.getElementById("time");
var timevalue=time.value;
//通过正则表达式确认输入格式是否正确
var patt=/^(\d{1,4})(-)(\d{1,2})\2(\d{1,2})$/;
if(patt.test(timevalue)==false){
//如果不正确
textp.innerHTML="输入格式不满足YYYY-MM-DD";
return false;
}else{
textp.innerHTML="这里显示倒计时";
}
//获取输入的年月日
var timearray=timevalue.split("-");
//ShowLeftTime(timearray[0],timearray[1],timearray[2]);
setInterval(function(){ShowLeftTime(timearray[0],timearray[1],timearray[2]);},1000);
}
function ShowLeftTime(year,month,date){
//得出剩余时间
var now=new Date();
var endDate=new Date(year,month-1,date);
var leftTime=endDate.getTime()-now.getTime();
var leftsecond=parseInt(leftTime/1000);
var day=Math.floor(leftsecond/(60*60*24));
var hour=Math.floor((leftsecond-day*24*60*60)/3600);
var minute=Math.floor((leftsecond-day*24*60*60-hour*3600)/60);
var second=Math.floor(leftsecond-day*60*60*24-hour*60*60-minute*60);
//显示剩余时间
textp.innerHTML="距离"+year+"年"+month+"月"+date+"日"
+"还有"+day+"天"+hour+"小时"+minute+"分"+second+"秒";
}
</script>
</html>
PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:
在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi
在线日期计算器/相差天数计算器: http://tools.jb51.net/jisuanqi/datecalc
在线日期天数差计算器: http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix时间戳(timestamp)转换工具: http://tools.jb51.net/code/unixtime
JS 给定时间 倒计时