JS 实现倒计时

利用 window.setInterval() 实现倒计时

演示 >>

示例:

var id;
var interval = 1000; 

/**
 * @param year 结束日期的年
 * @param month 结束日期的月
 * @param day 结束日期的日
 * @param divname 需做出响应的元素id
 */
function ShowCountDown(year,month,day,divname) { 
    // 设置结束日期
    var endDate = new Date(year, month-1, day); 
    // 获取当前日期
    var now = new Date(); 
    // 计算剩余毫秒数
    var leftTime=endDate.getTime()-now.getTime(); 
    // 计算剩余秒数
    var leftsecond = parseInt(leftTime/1000); 
    // 剩余天数(整数倍)
    var day1=Math.floor(leftsecond/(60*60*24)); 
    // 剩余小时数(除去大单位后整数倍)
    var hour=Math.floor((leftsecond-day1*24*60*60)/3600); 
    // 剩余分钟数(除去大单位后整数倍)
    var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60); 
    // 剩余秒数(除去大单位后整数倍)
    var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60); 

    var cc = document.getElementById(divname); 
    cc.innerHTML = "距离" + year + "年" + month + "月" + day + "日还有:" + day1 + "天" + hour + "小时" + minute + "分" + second + "秒"; 
} 

/**
 * 开始倒计时
 */
function start(){
    id = window.setInterval( function() {

            ShowCountDown(2023,8,7,'divdown1');

        }, interval); 
}

/**
 * 停止倒计时
 */
function stop(){
    if (id) {
        window.clearInterval(id);
    }
}       

window.setInterval() 注解

1. window.setInterval()

功能:
按照指定的周期(以毫秒计)来调用函数或计算表达式。
语法:
setInterval(code,millisec)
参数:
code: 在定时时间到时要执行的JavaScript代码串。
millisec: 设定的定时时间,用毫秒数表示。
返回值:
定时器的ID值,可用于clearInterval()方法停止指定的定时器。
注:
setInterval()方法会不停地调用函数,直到用clearInterval()终止定时或窗口被关闭。

2. window.clearInterval()

功能:
取消由 setInterval() 方法设置的定时器。
语法:
clearInterval(id_of_setinterval)
参数:
id_of_setinterval: 由 setInterval() 返回的 id 值。该值标识了一个 setInterval 定时器。
也就是:window.setInterval() 返回的就是 window.clearInterval() 的参数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 年底大家都盼着回家过春节,闲着无聊用js实现一个火车出发倒计时的小例子。用到的知识是javascript的Date...
    唐小红阅读 3,610评论 0 4
  • <!DOCTYPE html> Web Page Design
    ml66阅读 1,196评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,499评论 0 6
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,736评论 0 8