js原生倒计时

时间:2024-01-17 20:05:02

倒计时是2019年6月7号10点开始的

代码粘贴过去直接运行即可

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>倒计时</title>
</head> <body>
<div id="timeBox"> </div>
</body>
<script>
// 获取容器
var timeBox = document.querySelector('#timeBox');
// 倒计时方法
/*
times 为未来的事件 为时间戳
*/
function countDown(times) {
// 正常是要校验的自己使用就不校验了,知道怎么传参
// 获取今天的事件戳
var today = new Date().getTime();
// 当前时间已经大于传入的时间,times不属于未来时
if (today >= times) {
return {
countdownHtml: '倒计时已经结束了',
flag: true
}
}
// 获得剩余的毫秒数
var timeDiff = times - today;
//计算剩余的天数
// /1000 转化成秒 / 60 转化成分 /60 转化成时 //转化成天 10 是 10进制
var d = parseInt(timeDiff / 1000 / 60 / 60 / 24, 10);
// 计算剩余的小时 总小时 除余 剩下的就是小时
var h = parseInt(timeDiff / 1000 / 60 / 60 % 24, 10);
// 计算剩余的分钟 总分钟数 除余 60 剩下的就是小时
var M = parseInt(timeDiff / 1000 / 60 % 60, 10);
// 计算剩余的秒数 同上的同样的
var s = parseInt(timeDiff / 1000 % 60, 10);
var seperator1 = "天";
var seperator2 = "时";
var seperator3 = "分";
var seperator3 = "秒";
// 小于两位数前边➕0
d = d < 9 ? "0" + d : d;
h = h < 9 ? "0" + h : h;
M = M < 9 ? "0" + M : M;
s = s < 9 ? "0" + s : s;
var countdown = d + seperator1 +
h + seperator2 +
M + seperator3 +
s + seperator3
return {
countdownHtml: countdown,
flag: false
}
}
// 创建一个未来时间
var times = new Date('2019/6/7 10:00').getTime();
// 获取倒计时返回的对象
var count = countDown(times);
// 调用一次函数弥补计时器空缺的一秒
timeBox.innerHTML = count.countdownHtml;
// 调用计时器
var interval = setInterval(function() {
// 重新获取倒计时返回的对象
var count = countDown(times);
if (count.flag) {
clearInterval(interval);
}
timeBox.innerHTML = count.countdownHtml;
}, 1000)
</script> </html>