本文详细解析JavaScript中实现倒计时的三种常见场景:简单时间显示、倒计时时差计算以及限时抢购功能。通过讲解Date对象的使用、gettime()方法及时间差计算逻辑,提供完整的代码示例,帮助开发者掌握不同倒计时效果的实现思路与具体方法。
JavaScript倒计时实现概述
当前团购网站、电商平台及门户网站等,经常需要记录关键时间节点,例如实时时间展示、倒计时差值计算以及限时抢购活动等。本文旨在分析实现不同倒计时效果的计算思路与具体方法,重点掌握Date日期对象的使用、获取时间的技巧以及时间差的计算方式,从而完成多种倒计时功能的开发。
简单时间显示实现
1、简单时间显示
本节将介绍Date日期对象,并通过该对象提取时、分、秒等具体时间信息,使开发者能够灵活获取所需的时间数据。
<!DOCTYPE html>
<html>
<head>
<title>获取时间</title>
<script type="text/javascript">
window.onload = function(){
showTime();
}
function showTime(){
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1;
var date = myDate.getDate();
var dateArr = ["日","一",'二','三','四','五','六'];
var day = myDate.getDay();
var hours = myDate.getHours();
var minutes = formatTime(myDate.getMinutes());
var seconds = formatTime(myDate.getSeconds());
var systemTime = document.getElementById("time");
systemTime.innerHTML = " " + year + "年" + month +"月" + date + "日" + " 星期" + dateArr[day] + " " + hours + ":" + minutes + ":" + seconds;
setTimeout("showTime()",500);
}
//格式化时间:分秒。
function formatTime (i){
if(i < 10){
i = "0" + i;
}
return i;
}
</script>
</head>
<body>
<div id ='time'></div>
</body>
</html>
显示结果:
倒计时时差计算
2、倒计时时差
本节讲解gettime()等方法的用法,以及时间差的计算逻辑,帮助开发者学会计算两个时间点之间相差的天数。
<!DOCTYPE html>
<html>
<head>
<title>获取时间</title>
<script type="text/javascript">
window.onload = function(){
deadTime();
}
function deadTime(){
var nowTime = new Date();
var finalTime = new Date("2015-11-11");
var lefttime = (finalTime.getTime() - nowTime.getTime())/(1000*24*60*60);
var date = Math.ceil(lefttime);
document.getElementById("time").innerHTML = date;
}
</script>
</head>
<body>
<div >距离双十一还有:<span id ='time'></span>天</div>
</body>
</html>
显示效果:
限时抢购功能开发
3、 限时抢购
本节演示如何运用Date对象及其相关方法,计算并展示剩余的天、时、分、秒等时间差信息。
<!DOCTYPE html>
<html>
<head>
<title>团购——限时抢</title>
</head>
<body>
<div class="time"> <span id="LeftTime"></span></div>
</div>
<script>
function FreshTime()
{
var endtime=new Date("2015/11/11,12:20:12");//结束时间
var nowtime = new Date();//当前时间
var lefttime=parseInt((endtime.getTime()-nowtime.getTime())/1000);
d=parseInt(lefttime/3600/24);
h=parseInt((lefttime/3600)%24);
m=parseInt((lefttime/60)%60);
s=parseInt(lefttime%60);
document.getElementById("LeftTime").innerHTML="距离活动结束还剩" + d+"天"+h+"小时"+m+"分"+s+"秒";
if(lefttime<=0){
document.getElementById("LeftTime").innerHTML="团购已结束";
clearInterval(sh);
}
}
FreshTime();
var sh;
sh=setInterval(FreshTime,1000);
</script>
</body>
</html>