10、定时器与倒计时

一、定时器

//定时器有两个,setInterval setTimeout ; 他们都属于window下全局方法;
    //setInterval(callback,毫秒数):每隔一段时间执行一次;关闭定时器用clearInterval
    //setTimeout(callback,毫秒数):只能执行一次; 关闭setTimeout用clearTimeout;
    var n=0;
    /*var timer=window.setInterval(function(){
        if(n==5){
            clearInterval(timer)
        }
        alert(n++)
    },0)*/
    var timer2=setTimeout(function(){
        alert(++n)
    },1000)
   // alert(123)

二、倒计时的思路:

倒计时的思路:
1)求出未来距离现在的毫秒数,然后把毫秒数转成秒数,并且取整;
2)秒转换:我们需要计算一天有多少秒:24*60*60=86400
3)字符串拼接
4)函数先调用一次, 定时器调用

三、日期对象

oDate.getTime() 现在距离1970年1月1日 00:00:00 的毫秒数; 即 格林尼治时间;
var oP=document.getElementsByTagName(‘div‘)[0];

    function getTime(){
        var oDate=new Date(); //实例 对象
        var y=oDate.getFullYear();
        var m=oDate.getMonth()+1; //获取月份的时候,一定要+1;
        var d=oDate.getDate(); //日期 几号
        var week=oDate.getDay();//星期日:0,1,2,3,4,5,6
        var h=oDate.getHours();
        var min=oDate.getMinutes();
        var s=oDate.getSeconds();
        var str=h+‘:‘+min+‘:‘+s;
        oP.innerHTML=str;
    }
    getTime();
    var timer=setInterval(getTime,1000)
    /*var ary=[‘日‘,‘一‘,‘二‘,‘三‘,‘四‘,‘五‘,‘六‘]
    alert(‘今天星期‘+ary[week]);*/

四、时间

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body{
            font-size: 50px;
        }
        p{
            display: inline-block;
            color: red;
            font-weight: bold;
            font-size: 80px;
        }
    </style>
</head>
<body>
<div>北京时间,下午<p>00:00:00</p></div>
<script>
    var oP=document.getElementsByTagName(‘p‘)[0];
    //toDou功能:让一位数字,都变成两位;
    function toDou(n){ //获取两位数
        return n>=0 && n<10? ‘0‘+n:‘‘+n;
    }
    var str=null;
    function getTime(){
        //1.获取日期对象;
        var oDate=new Date();
        var h=oDate.getHours();
        var m=oDate.getMinutes();
        var s=oDate.getSeconds();
        str=toDou(h)+‘:‘+toDou(m)+‘:‘+toDou(s); //字符串拼接日期
        oP.innerHTML=str;
    }
    getTime(); //必须先调用一次,否则,页面会出现一秒钟的00:00:00;
    var timer=setInterval(getTime,1000);//用定时器每隔1000毫秒调用一次getTime;
</script>
</body>
</html>

五、倒计时

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body{
            font-size: 40px;
        }
        span{
            font-size: 60px;
            color: red;
        }
    </style>
</head>
<body>
<div>距离下课还剩<span>00天 00:00:00</span>时间</div>
<script>
    var oSpan=document.getElementsByTagName(‘span‘)[0];
    function toDou(n){
        return n>=0 && n<10? ‘0‘+n :‘‘+n;
    }
    function cuntDown(){
        var oDate=new Date();
        //设置未来时间的时候,一定要用/杠,否则不兼容;
        var newDate=new Date(‘2016/9/31 18:00:00‘);
       // alert(newDate.getTime()-oDate.getTime());
        var s=Math.floor((newDate-oDate)/1000);
        if(s<=0){
            clearInterval(timer);
            oSpan.innerHTML=‘您来晚了,活动已结束‘;
            oSpan.style.color=‘#ccc‘
            return;
        }
        //24*60*60=86400;
        var d=Math.floor(s/86400);
        s%=86400; //剩余的秒数;
        var h=Math.floor(s/3600);
        s%=3600;
        var m=Math.floor(s/60);
        s%=60;
        oSpan.innerHTML=toDou(d)+‘天‘+toDou(h)+‘:‘+toDou(m)+‘:‘+toDou(s);
    }
    cuntDown();
    var timer=setInterval(cuntDown,1000);
</script>
</body>
</html>
 
时间: 2024-10-10 08:57:45

10、定时器与倒计时的相关文章

第34天:日期函数、定时器、倒计时

一.日期函数(Date())设置本地日期:年月日时分秒1.声明日期var date=new Date();//创建一个新的日期函数2.使用函数date.getTime();//提倡使用,date.valueOf();得到距离1970年的毫秒数 console.log(Date().now());//直接使用console.log(+new Date()); 3.获取日期和时间getDate() 获取日 1-31getDay () 获取星期 0-6 getMonth () 获取月 0-11getF

定时器和延时器(利用定时器制作倒计时)

一.延时器(setTimeout) 1.延时器(setTimeout)的工作方式是:当设定一个延时器是5s后进行时,并不代表它5s后就立即执行,只是代表它5s后会被加入队列,如果5s后,队列没有其他东西,那么延时器的代码会立即执行,否则会延迟执行. 因此,关于延时器最重要的一点是:指定的时间间隔(如设置5s后执行),表示何时将延时器加入到队列,而不是何时真正执行代码. 二.定时器(setInterval) 1.定时器的一大特点是每隔一段时间(如每隔2s)就会执行,一直重复.这样有个问题:设定一个

Javascript 10 - 定时器

注意,setTimeout, serinterval之间的区别. setTimeout 只时间到了执行一次. serinterval 每隔多少秒执行一次.

skynet之伪取消定时器

1.截至目前群里的成员已经对skynet中的timeout提出了更多的要求.目前skynet提供的定时器是倒计时形式,且定时器一旦设置后,便不能撤销(至少目前的实现是这样),然后调用 cb 最近有人提出希望能支持一下撤销定时器的功能,但云大坚持:“框架只应该提供必不可少的特性,能用已有的特性实现的东西都应该删掉”. 2.这里为什么说伪取消定时器呢? skynet中当调用 skynet.timeout(time, cb)以后,便进入skynet_timer.c中管理,然后到时以后,将到时消息放到调

原生js倒计时

<!--倒计时html--><a href="#"> <p>本场剩余</p> <div class="countdown"> <span></span><i>:</i> <span></span><i>:</i> <span></span> </div> <p>查看

10款超炫的开源jquery的源码预览效果

1.Flat Surface Shader – 超炫的 3D 模拟照明效果 Flat Surface Shader 是一个超炫的 3D 模拟照明效果,可以配置使用基于 Canvas 的 2D 上下文或者基于 SVG 多边形数组绘制三角形.它还采用原生的 Float32Arrays 存储数字数据,进行高度优化的计算.可以调整颜色参数预览效果,而且可以导出图像. 在线演示 源码下载 2.Sidr – 创建侧栏和响应式菜单的最佳 jQuery 插件 侧栏隐藏菜单是一个很好的方式,使得用户可以在需要的时

JS实现十分钟倒计时代码实例

编写JS倒计时代码需要用到很多JavaScript知识,比如:if函数,Math.floor,定时器setInterval等等,如有不清楚的小伙伴可以参考PHP中文网的相关文章,或者访问 JavaScript视频教程. 举例:10分钟考试倒计时,当时间仅剩五分钟时,提醒考试仅剩5分钟,时间结束时,提示考试结束.具体代码如下: HTML部分: ? 1 2 3 4 <body>  <div id="timer"></div>  <div id=&q

JavaScript 之 定时器

JavaScript 里面有两个定时器:setTimeout() 和 setInterval() . 区别: setTimeout():相当于一个定时炸弹,隔一段时间执行,并且只会执行一次就不在执行了. setInterval(): 相当于一个闹钟,隔一段时间执行,并且会重复执行. 一.setTimeout() 1.设置定时器(倒计时) 语法格式: setTimeout(function() {},时间):    这个函数需要两个参数: 第一个参数是到时间后需要执行的函数,可以是匿名函数,也可以

定时器的暂停,继续,刷新

页面挂载的时候定时器搞起 <el-row> <div class="ui-toolbar" style="height: 32px; line-height: 32px;"> <div style="margin-left:10px;" :class="isExecuteTiming ? 'green': 'red'">AUTO Refresh</div> <div sty