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
  • 相关阅读:
    请输入关键字
    如何把心动变成行动
    理解ASP.NET MVC系列之一:ASP.NET MVC基于MVC设计模式
    window.showModalDialog()
    visual studio 2010 winform程序不能添加对system.web的引用[转载]
    理解ASP.NET MVC系列之三:从URL到Route
    Dan计划:重新定义人生的10000个小时
    为Visual Studio添加配色方案
    [转载]用缓存服务器负载均衡 提数据库查询效率
    Json的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/heshuaiblog/p/10653454.html
Copyright © 2011-2022 走看看