zoukankan      html  css  js  c++  java
  • 时间对象 <-> 定时器 <-> 电子时钟 <-> 倒计时效果

    时间对象: new Date()
        获取当前用户的本地时间(用户的本地时间是不可靠的)

    在真正的开发中,要获取服务器的时间(相对安全)

    时间戳:
    1970年01月01日00时00分00秒到当前的时间

    new Date().getTime(); //number类型
    Date.now()
    + new Date

    2018年10月27日,12点43分00秒

    下面获取的时间都是数字类型:
    获取当前的年份:
    t.getFullYear()

    获取当前的月份
    t.getMonth()
    注意:
    获取来的值少1个月份,所以要加1

    获取日
    t.getDate()

    获取周几
    t.getDay() 周日为0

    获取小时:
    t.getHours()

    获取分钟:
    t.getMinutes()

    获取秒:
    t.getSeconds()
    例子:在页面中显示当前时间 ==> 2018年10月28日----周日----21点46分42秒
     1     let arr = ['周日','周一','周二','周三','周四','周五','周六'];
     2     console.log(['周日','周一','周二','周三','周四','周五','周六'][new Date().getDay()])
     3     function fn(){
     4         let t = new Date();
     5         let y = t.getFullYear();
     6         let m = tDou(t.getMonth()+1);
     7         let d = tDou(t.getDate());
     8         let h = tDou(t.getHours());
     9         let mi = tDou(t.getMinutes());
    10         let se = tDou(t.getSeconds());
    11         p.innerHTML = y + '年' + m + '月' + d + '日----' + arr[t.getDay()]+'----'  + h +'点'+ mi +'分'+ se +'秒';
    12     }
    13     fn(); //上来直接执行,第一下不会闪
    14     setInterval(fn,1000);
    15     /*
    16         小于10补0
    17     */
    18     function tDou(n){
    19         return n<10?'0'+n:''+n;
    20     }
    倒计时原理: 
    1.未来的时间
    2.现在的时间(每分每秒都在动)

    未来的时间 - 现在的时间 = 剩下多少时间

    new Date(工作时这儿放服务器时间);

    设置时间:
    字符串:
    new Date('年 月 日 时:分:秒')
    new Date('2018 10 27 15:40:00')

    数字版:
    new Date(年,月,日,时,分,秒)
    new Date(2018,9,27,15,40)

    注意:
    设置月份的时候要减1
    转换公式:
    1 let d = Math.floor(t/86400);
    2 t %= 86400;
    3 let h = Math.floor(t/3600);
    4 t %= 3600;
    5 let m = Math.floor(t/60);
    6 t %= 60;

    例子:在页面中显示到未来某个时间的倒计时   ==>   00天17时37分50秒

     1 let newdate = new Date('2018 10 28 16:00:00');  //未来的时间 
     2     let timer = null;
     3     function fn(){
     4         let nowDate = new Date(); //现在的时间
     5         let t = Math.floor((newdate - nowDate)/1000);
     6         if(t <= 0){
     7             //如果未来的时间 - 现在的时间 小于0,说明现在的时间已经超过了设置的时间,所以关闭定时器
     8             clearInterval(timer);
     9         }else{
    10             let d = Math.floor(t/86400);   //1
    11             t %= 86400;  
    12             let h = Math.floor(t/3600);
    13             t %= 3600;
    14             let m = Math.floor(t/60);
    15             t %= 60;
    16             p.innerHTML = tDou(d)+'天'+tDou(h)+'时'+tDou(m)+'分'+tDou(t)+'秒';
    17         }
    18     }
    19 
    20     fn();//上来就先调用一次,避免有闪的现象
    21 
    22     timer = setInterval(fn,1000);//开启定时器
    23 
    24     function tDou(n){  //补零
    25         return n<10?'0'+n:''+n;
    26     }

    求 一个月有多少天,这个月有几天?
      let d = new date
      d.setDate(1)//先设置成一号,避免出现计算下下个月的天数的情况
              (比如1月30天,而2月最大28天,此时用这个方法会跳过2月,进入3月份,)
      d.setMonth(d.getMonth()+1) //设置成下个月

      d.setDate(0) //代表上个月的最后一天 等于知道了这个月有多少天
      console.log(d.getDate())
  • 相关阅读:
    Asp.Net构架(Http请求处理流程)、(Http Handler 介绍)、(HttpModule 介绍)
    JQuery中的事件(三)
    关于asp.net mvc中的httpModules 与 httpHandler
    jQuery中的CSS(二)
    JQuery选择器(一)
    JavaScript中利用Ajax 实现客户端与服务器端通信(九)
    JavaScriptDom操作与高级应用(八)
    oracle(二)V$lock 视图中ID1 , ID2 列的含义
    关于static、内部类
    oracle(一)复习起航
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/9867678.html
Copyright © 2011-2022 走看看