JS(javaScript)——2.4定时和间隔

定时:闹钟一样,定点执行;setTimeout();

间隔:每隔多长时间执行一次:setInterval;

案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js_04_date</title>
</head>
<body>
    现在是:<div id="div">2019-12-02 00:00:00</div>
</body> 
</html>

<script type="text/javascript">
    /*
        当前时间
    */
    function timeNow(){
    /* 测试时间
        时间在JS里面是一个对象
     */
    var now = new Date();
    /* 每一个对象都有toString(),js没有toString,只是和java类比 */
    console.info("----date:toString()----" + now);
    console.info("----date:toString()----" + now.toLocaleString());
    console.info("----date:毫秒数----" + now.getTime());

    /* 获取年,获取月,获取日 */
    console.info("----date:toString():getFullYear----" + now.getFullYear());
    console.info("----date:toString():getMonth(0-11)----" + now.getMonth());
    /* getYear()*/
    // console.info("----date:toString()----" + now.getYear());

    /* 将时间显示到页面上
        将时间放到div的开始标签和结束标签上面

        dom元素:
            ~获取dom元素(css选择器);id选择器
            ~修改dom元素的三要素

        参数是元素的id
    */
    var divDom = document.getElementById("div");
    /* 内部的html
        标签三要素:
    */
    console.info("==dominnerHtml==" + divDom.innerHTML);
    /* 修改这个值 */
    divDom.innerHTML = now.toLocaleString() + "" ; 
    /* 由于时间格式特别的不喜欢,期望有一个类型于SimplateDateFormcat(java)里面的对象;
    很遗憾,没有 */
    var timeStr = "" ; 
    var year = now.getFullYear() ; 
    /* js的月份从0开始 */
    var month = now.getMonth() + 1;
    var date = now.getDate();

    var hour = now.getHours(); 
    var minute = now.getMinutes(); 
    var second = now.getSeconds(); 
    /* 如果秒数小于0,前端补一个0 */
    if(second < 10 )
    {
        second = "0" + second ; 
    }


    /* 拼装成一个目标的格式:
        2017-12-21 14:52:00 */
    timeStr = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second ; 
    divDom.innerHTML = timeStr + "" ; 
 

    /* html加载的时候,是一行一行的往下执行;
        如果碰到了js代码也是一行一行往下执行;
        如果碰到了function;只是为function申请资源,并不是执行;只有调用的时候才执行

        由于先后顺序的问题,所以无法加载,查询到div里面的内容
        所以可以将代码挪到后面,即可加载到div标签中的内容

        问题:这个表是死的,不会走;
        如何让这个表走呢?
     */
    }

    /*
        间隔执行
        参数1:要执行哪个方法或者代码
        参数2:间隔多长时间;单位是毫秒

        每隔一秒钟,执行一下timeNow方法
    */
    var interVal = window.setInterval(timeNow,1000);

    /* 定时
        启动以后指定时间内,执行一次
        参数1:要执行哪个方法或者代码
        参数2:间隔多长时间;单位是毫秒
     */
     //window.setTimeout(timeNow,5000);

     /* 参数1的方法没有名字,叫匿名函数 */
    window.setTimeout(function()
    {
        console.error("===我取消了啊==")
        /* 执行一次 */
        /* 取消定时 */
        window.clearInterval(interVal);
    },10000)

    /*
        学生抽奖吗?
        当天回答次数,总共回答次数
        每天凌晨要定义将当前的回答次数清0

        ~每隔24小时执行一次
        ~多长时间以后启动执行呢?
            比如现在:15:33,一般是凌晨:00:00:00;
            准备一个明天00:00:00的时间对象,对象一个当前的时间对象;取到毫秒数相减就可以了.
    */

    /*
        间隔执行
        参数1:要执行哪个方法或者代码
        参数2:间隔多长时间;单位是毫秒
        5000=5s
        每隔一秒钟,执行一下timeNow方法
    */
    // window.setInterval(timeNow,5000);
</script>

JS(javaScript)——2.4定时和间隔