JavaScript实现抢购倒计时程序详解
作者:函数茶馆时间:2026-10-23 10:27:11浏览:356
本文介绍如何使用JavaScript实现抢购倒计时功能,涵盖未到开始、进行中及结束三种状态。通过获取起始与截止时间,动态计算剩余天数、小时、分钟和秒数,并在页面上实时显示。代码兼容主流浏览器,支持C#后端输出时间参数,适用于各类在线抢购场景。
JavaScript抢购倒计时实现概述
本文提供了使用JavaScript实现抢购倒计时的完整代码示例,供读者参考学习。
倒计时三种状态详解
该倒计时功能主要包含三种显示状态:
第一种状态为未到抢购开始时间,此时页面显示“抢票倒计时××天××时××分××秒”。
第二种状态为抢购正在进行中,页面显示“抢票还剩××天××时××分××秒”。
第三种状态为抢购活动结束,页面提示“本轮抢购结束”。
时间参数设置与兼容性说明
抢购的起始时间和截止时间可通过C#后端代码动态输出。
该实现方案兼容其他主流浏览器。
<div id="clientclock">
</div>
<br />
<br />
<br />
<br />
<mce:script type="text/javascript"><!--
//抢票起始时间 2011年2月29日10点10分0秒,月份的定义从0开始,因此1表示2月份。
var start = new Date('2011', '1', '29', '10', '10', '00');
//var start = new Date('2011','1', '28', '15', '10', '00');
//抢票截止时间 2011年2月29日11点10分59秒
var expire = new Date('2011', '1', '29', '11', '10', '59');
//显示倒计时的HTML对象
var clock = document.getElementById('clientclock');
//倒计时函数,每秒执行一次
setLeftTime();
function setLeftTime() {
var now = new Date();
//如果当前时间小于抢票起始时间,那么显示:抢票倒计时××天××时××分××秒
if (now < start) {
var diff = -480 - now.getTimezoneOffset() //是北京时间和当地时间的时间差
var lefttime = (start.getTime() - now.getTime()) + diff * 60000
var day = Math.floor(lefttime / (1000 * 60 * 60 * 24));
var hour = Math.floor(lefttime / (1000 * 3600)) - (day * 24);
var minute = Math.floor(lefttime / (1000 * 60)) - (day * 24 * 60) - (hour * 60);
var second = Math.floor(lefttime / (1000)) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
clock.innerHTML = '抢票倒计时:<span class="ztCopy">' + day + '</span>天 <span class="ztCopy">' + hour + '</span>时 <span class="ztCopy">' + minute + '</span>分 <span class="ztCopy">' + second + '</span>秒';
}
//如果当前时间大于等于抢票起始时间,小于抢票截止时间,即:正在抢票,那么显示:抢票还剩××天××时××分××秒
else if (now <= expire) {
var diff = -480 - now.getTimezoneOffset() //是北京时间和当地时间的时间差
var lefttime = (expire.getTime() - now.getTime()) + diff * 60000
var day = Math.floor(lefttime / (1000 * 60 * 60 * 24));
var hour = Math.floor(lefttime / (1000 * 3600)) - (day * 24);
var minute = Math.floor(lefttime / (1000 * 60)) - (day * 24 * 60) - (hour * 60);
var second = Math.floor(lefttime / (1000)) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
clock.innerHTML = '抢票还剩:<span class="ztCopy">' + day + '</span>天 <span class="ztCopy">' + hour + '</span>时 <span class="ztCopy">' + minute + '</span>分 <span class="ztCopy">' + second + '</span>秒';
}
//如果当前时间大于抢票截止时间,即:本轮抢票结束,那么显示:本轮抢购结束
else {
clock.innerHTML = '本轮抢购结束';
}
setTimeout("setLeftTime()", 1000);
}
// --></mce:script>
更多关于倒计时的相关文章,请参阅专题《倒计时功能》。
更多JavaScript时钟特效,可访问JavaScript时钟特效专题查看。
以上就是本文的全部内容,希望能为读者的学习提供帮助,也欢迎大家继续支持本站。
作者最新文章
Object.assign合并JS对象的用法与注意事项
2026-11-05 17:56:08
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
