zoukankan      html  css  js  c++  java
  • javascript 倒计数功能

    最近在项目中遇到一个倒计时功能,在网上没有找到合适的,就自己写了个方法。贴在这里,权且当个记录。

    export const timeRun = (timeStr, callBack) => {
      let timeArr = timeStr.split(':');
      if (timeArr.length == 2) {//格式 5:00
        let minute = timeArr[0];
        let second = timeArr[1];
        if (second == '00') {
          let minuteInt = parseInt(minute);
          minuteInt--;
          if (minuteInt.toString().length == 1) {
            minute = "0" + minuteInt;
          } else {
            minute = minuteInt.toString();
          }
          second = "59";
        } else {
          let secondInt = parseInt(second);
          secondInt--;
          if (secondInt.toString().length == 1) {
            second = "0" + secondInt;
          } else {
            second = secondInt.toString();
          }
        }
    
        if ((minute == '00' || minute == '0') && (second == '00' || second == '0')) {
          callBack();
          return "00:00";
        }
    
        return minute + ":" + second;
      } else if (timeArr.length == 3) {//格式 1:00:00
        let hour = timeArr[0];
        let minute = timeArr[1];
        let second = timeArr[2];
    
        if (second == '00') {
          if (minute == '00') {
            let hourInt = parseInt(hour);
            hourInt--;
            minute = '59';
            hour = hourInt.toString();
          } else {
            let minuteInt = parseInt(minute);
            minuteInt--;
            if (minuteInt.toString().length == 1) {
              minute = "0" + minuteInt;
            } else {
              minute = minuteInt.toString();
            }
            second = "59";
          }
        } else {
          let secondInt = parseInt(second);
          secondInt--;
          second = second.toString();
        }
        if ((hour == '00' || hour == '0') && (minute == '00' || minute == '0') && (second == '00' || second == '0'))
    
          return hour + ":" + minute + ":" + second;
      } else {
        console.error("倒计时时间格式错误");
      }
    }
    View Code

    使用方法如下,其中finished是回调函数:

    let time = '05:00';
    let timer = setInterval(() => {
              time = timeRun(time, finished);
              if(time == "00:00" || time == "0:00:00"){
                clearInterval(timer);
              }
            }, 1000);
    View Code
  • 相关阅读:
    json转List、Map
    java复制文件的4种方式
    Java并发编程之CountDownLatch的用法
    SpringMVC整合ActiveMQ
    Spring AOP (事务管理)
    Spring AOP 的实现方式(以日志管理为例)
    Java设计模式之模板方法模式(Template Method)
    MongoDB简介
    线程池的实现原理
    ReentrantLock的底层实现机制 AQS
  • 原文地址:https://www.cnblogs.com/heshuaiblog/p/10653454.html
Copyright © 2011-2022 走看看