更新时间:2021-11-17 来源:黑马程序员 浏览量:
在一些电商网站的活动页上会经常出现折扣商品的倒计时标记,显示离活动结束还剩x天x小时X分X秒,像这样的倒计时效果就可以利用日期对象来实现。
倒计时的核心算法是输人的时间减去现在的时间,得出的剩余时间就是要显示的倒计时时间,这需要把时间都转化成时间戳(毫秒数)来进行计算,把得到的毫秒数转换为天数、小时、分数、秒数。具体示例代码如下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript倒计时代码|黑马程序员web前端培训高手班 http://web.itheima.com</title>
<style>
body{
background-color: #f5f5f5;
}
p{
margin: 100px auto;
width: 500px;
text-align: center;
font-weight: 700;
font-size: 16px;
background-color: yellow;
}
</style>
</head>
<body>
<div>
<p id="t"></p>
</div>
</body>
<script>
// 倒计时函数
function countDown(time) {
var nowTime = +new Date();
var inputTime = +new Date(time);
var times = (inputTime - nowTime) / 1000;
var d = parseInt(times / 60 / 60 / 24);
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24);
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60);
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60);
s = s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
// 设置终止时间
time = '2021-11-30 10:57:56';
// 设置定时器1秒运行1次
window.setInterval(function(){
time1 = countDown(time);
let pTime = document.getElementById('t');
pTime.innerHTML = time1;
}, 1000);
</script>
</html>
上述代码中,第2行的+new Date()是new
Date().getTime()代码的简写,返回当前时间戳,单位是毫秒。第3行代码是设置活动的结束时间戳。第4行代码计算剩余毫秒数,需要转换为秒数,转换规则为1秒/1000毫秒。第5~13行代码计算天数小、小时h、分时m、秒数s,并使用return返回。
第16行代码输出距离指定结束日期2021-11-30 10:57:56还剩多少时间。
代码运行效果如下:
猜你喜欢