JavaScript实现页面日期倒计时功能
作者:函数茶馆时间:2026-10-24 08:28:46浏览:659
本文介绍如何使用JavaScript实现一个简单的页面日期倒计时功能。通过获取用户输入的目标日期,利用setInterval定时器每秒更新剩余时间,并在时间结束时通过clearInterval停止计时及弹出提示。文章提供了完整代码及解决定时器重复触发问题的思路,适合前端初学者参考学习。
JavaScript实现页面日期倒计时功能
本文分享了一段使用JavaScript实现页面倒计时的具体代码,供读者参考学习。
接下来直接展示相关代码实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
body
{
color:red;
text-align: center;
}
.one{
color:black;
text-align:center;
}
</style>
</head>
<body>
<p>
日期倒计时<br>
请输入目标日期并点击按钮,实现目标日期的倒计时!
</p>
<form name="form1">
<input type="text" id="a" size=1 name="a">年
<input type="text" id="b" size=1 name="b">月
<input type="text" id="c" size=1 name="c">日
<input type="text" id="d" size=1 name="d">时
<input type="text" id="e" size=1 name="e">分
<input type="text" id="f" size=1 name="f">秒
<br>
<div id="time" value="时间"></div>
<script>
function getdate(clock){
var now=new Date();
var y=now.getFullYear()
var m=now.getMonth()
var d=now.getDate()
var day=now.getDay()
var h=now.getHours()
var minu=now.getMinutes()
var s=now.getSeconds()
m+=1;
var array=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六")
var nowtime=y+"年"+m+"月"+d+"日 "+array[day]+" "+h+"时"+minu+"分"+s+"秒";
clock.innerHTML="当前时间:"+nowtime;
}
window.onload=function(){
window.setInterval("getdate(time)",1000)
}
</script>
<input type="button" value="倒计时" onclick="leftTime()">:
距离目标日期还有:
<input type="text" id="cha" >
<script>
var flag=1;var t;
function leftTime(){
if(flag==0){flag=1;}
year=document.getElementById("a").value;
month=document.getElementById("b").value;
day=document.getElementById("c").value;
hour=document.getElementById("d").value;
minute=document.getElementById("e").value;
second=document.getElementById("f").value;
var leftTime = (new Date(year,month-1,day,hour,minute,second)) - (new Date());
//计算剩余的毫秒数
if(leftTime>0){
var days = parseInt(leftTime/1000/60/60/24,10); //计算剩余的天数
var hours = parseInt(leftTime/1000/60/60%24,10); //计算剩余的小时
var minutes = parseInt(leftTime/1000/60%60,10);//计算剩余的分钟
var seconds = parseInt(leftTime/1000%60,10);//计算剩余的秒数
document.getElementById("cha").value=days+"天" + hours+"小时" + minutes+"分"+seconds+"秒";
}
else{
document.getElementById("cha").value="0天0小时0分0秒";
alert("主人,时间到啦!")
flag=0;clearInterval(t);
}
if(flag==1){
t=setInterval("leftTime()",1000);
flag=2;
}
}
</script>
</form>
</body>
</html>
在初次编写并测试时,发现当倒计时结束后,页面会持续弹出提示框。经查阅资料得知,每次调用setInterval周期性执行函数时,都需要相应地设置clearInterval来关闭定时器。因此,最终代码中引入了flag标志位来控制逻辑,具体实现如上所示。运行效果如下:

时间到提示:

以上即为本文的全部内容,希望能为读者的学习带来帮助,也欢迎继续支持本站。
作者最新文章
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
JS使用constructor判断数据类型可靠吗
2026-11-05 13:49:41
