js中Date()案例

Posted by xiongmao; tagged with js实现倒计时

导读:

格式化时分秒

要求封装一个函数返回当前的时分秒 格式为08:08:08

       var date = new Date();
       console.log(date.getHours());//时
       console.log(date.getMinutes());//分
       console.log(date.getSeconds());//秒
       //要求封装一个函数返回当前的时分秒 格式为 08:08:08
       function getTime(){
           var time = new Date();
           var h = time.getHours();
           h = h < 10 ? '0'+ h : h;
           var m = time.getMinutes();
           m = m < 10 ? '0'+ m : m;
           var s = time.getSeconds();
           s = s < 10 ? '0'+ s : s;
           return h +':' + m + ':' + s ;
       }
       console.log(getTime());

倒计时效果

js实现倒计时效果
1.核心算法:输入的时间减去现在的时间就是剩余时间,但是不能拿着时分秒相减,比如 05分减去25分 ,结果会是负数的
2.用时间戳来做,用户输入时间总的毫秒数减去现在时间的总的毫秒数得到的就是剩余时间的毫秒数
3.把剩余时间总的毫秒数转换为天,时,分,秒(时间戳转换为时分秒)
转换公式如下:
  = parseTnt(总秒数/60/60/24); //计算天数
 h = parseInt(总秒数/ 60/60 %24); //计算小时
 m = parseInt(总秒数/60 % 60); //计算分
 s = parseInt(总秒数%60); //计算当前秒数

       function countDown(time){
           var nowTime = +new Date();//返回当前时间总的毫秒数
           var inputTime = +new Date(time);//返回的是用户输入时间总的毫秒数
           var times = (inputTime - nowTime) /1000; // times是剩余时间的秒数
           var d = parseInt(times / 60 / 60 /24);
           d = d < 10 ? '0'+ d : d;
           var h = parseInt(times / 60 / 60 %24);
           h = h < 10 ? '0'+ h : h;
           var m = parseInt(times / 60 % 60); 
           m = m < 10 ? '0'+ m : m;
           var s = parseInt(times % 60);
           s = s < 10 ? '0'+ s : s;
           return d + '天' + h + '时' + m +'分' +s + '秒'; 
       }
       console.log(countDown('2022-1-3 18:00:00'));