js实现京东秒杀
實(shí)現(xiàn)效果:每個(gè)偶數(shù)小時(shí)都是秒殺時(shí)刻,顯示當(dāng)前時(shí)間到最近的下一個(gè)秒殺時(shí)刻的倒計(jì)時(shí)。
網(wǎng)頁部分:
<div id="box"><span id="end"></span><br><span id="hour">02</span><span>:</span><span id="minute">00</span><span>:</span><span id="second">00</span>
</div>
?js部分:
<script>//獲取節(jié)點(diǎn)對(duì)象var eobj = document.getElementById('end');var bobj = document.getElementById('box');var hobj = document.getElementById('hour');var mobj = document.getElementById('minute');var sobj = document.getElementById('second');//聲明時(shí)、分、秒var th, tm, ts;function times() {var enddate = new Date(); //獲取結(jié)束時(shí)間var nowDate = new Date(); //獲取當(dāng)前時(shí)間var h = enddate.getHours(); //獲取結(jié)束時(shí)間的小時(shí)//兩小時(shí)秒殺if (h % 2) {h++;} else {h += 2;}eobj.innerHTML = h + ':00'; //顯示結(jié)束時(shí)間// 設(shè)置結(jié)束時(shí)間enddate.setHours(h);enddate.setMinutes(0);enddate.setSeconds(0);// 計(jì)算結(jié)束時(shí)間和當(dāng)前時(shí)間差值var diff = (enddate - nowDate) / 1000 //獲取時(shí)間差,除以1000是以秒為單位//console.log(diff);if (diff >= 0) {//通過取余實(shí)現(xiàn)時(shí)分秒的每60進(jìn)一位th = Math.floor(diff / 60 / 60);tm = Math.floor(diff / 60 % 60);ts = Math.floor(diff % 60);//當(dāng)時(shí)分秒為個(gè)位數(shù)時(shí)加個(gè)0th < 10 ? th = '0' + th : th;tm < 10 ? tm = '0' + tm : tm;ts < 10 ? ts = '0' + ts : ts;diff--;} else {clearInterval(timer); //當(dāng)時(shí)間差小于零時(shí)停止計(jì)時(shí)(clearInterval)alert("時(shí)間到,結(jié)束!")}//將獲得的時(shí)分秒結(jié)果重新賦給相應(yīng)的內(nèi)容中hobj.innerHTML = String(th);mobj.innerHTML = String(tm);sobj.innerHTML = String(ts);}//添加計(jì)時(shí)器(setInterval)每1000毫秒運(yùn)行一次timer = setInterval(times, 1000);times();</script>
?
總結(jié)
- 上一篇: 忽略已检查的异常,所有出色的开发人员都在
- 下一篇: 使用Boxfuse轻松在云中运行Spri