共计 1384 个字符,预计需要花费 4 分钟才能阅读完成。
在一些电商网站的流动页上会经常出现折扣商品的倒计时标记,显示离流动完结还剩 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 还剩多少工夫。
代码运行成果如下:
相干文章:
Math 对象的罕用办法有哪些? 如何应用?
JavaScript 中 let 和 var 和 const 有什么区别?
javascript 开发工具有哪些?
正文完
发表至: javascript
2021-11-17