javascript中未显示倒计时计时器

javascript中未显示倒计时计时器,javascript,Javascript,我是javascript新手,我想用localStorage创建一个倒计时计时器,从给定的时间开始,到00:00:00结束,但它不起作用, 当我运行代码时,它显示值“1506” 这是我的密码 <script type="text/javascript"> if (localStorage.getItem("counter")) { var CurrentTime = localStorage.getItem("counter")

我是javascript新手,我想用localStorage创建一个倒计时计时器,从给定的时间开始,到00:00:00结束,但它不起作用, 当我运行代码时,它显示值“1506”

这是我的密码

<script type="text/javascript">
            if (localStorage.getItem("counter")) {
                var CurrentTime = localStorage.getItem("counter");
            }
            else {
                var Hour = 3;
                var Minute = 25;
                var Second = 60;
                var CurrentTime = Hour.toString() + ":" + Minute.toString() + ":" + Second.toString();
            }


            function CountDown() {                                
                document.getElementById('lblDuration').innerHTML = CurrentTime;
                Second--;
                if (Second == -1) {
                    Second = 59;
                    Minute--;
                }
                if (Minute == -1) {
                    Minute = 59;
                    Hour--;
                }
                localStorage.setItem("counter", CurrentTime);
            }

            var interval = setInterval(function () { CountDown(); }, 1000);

    </script>

if(localStorage.getItem(“计数器”)){
var CurrentTime=localStorage.getItem(“计数器”);
}
否则{
var小时=3;
var分钟=25;
var秒=60;
var CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
}
函数倒计时(){
document.getElementById('lblDuration')。innerHTML=CurrentTime;
第二--;
如果(秒==-1){
秒=59;
分钟--;
}
如果(分钟==-1){
分钟=59;
小时--;
}
setItem(“计数器”,CurrentTime);
}
var interval=setInterval(函数(){CountDown();},1000);
  • 您需要声明变量
    Hour、Minute、Second、CurrentTime
    out-side
    if-else
    block。在这种情况下,它们不在
    函数CountDown()
    范围内
  • 您没有设置
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString()”
    localStorage.setItem(“计数器”,CurrentTime)之后
  • var小时=3;
    var分钟=25;
    var秒=60;
    var CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    函数倒计时(){
    document.getElementById('lblDuration')。innerHTML=CurrentTime;
    第二--;
    如果(秒==-1){
    秒=59;
    分钟--;
    }
    如果(分钟==-1){
    分钟=59;
    小时--;
    }
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    }
    setInterval(函数(){
    倒计时();
    }, 1000);
    
  • 您需要声明变量
    Hour、Minute、Second、CurrentTime
    out-side
    if-else
    block。在这种情况下,它们不在
    函数CountDown()
    范围内
  • 您没有设置
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString()”
    localStorage.setItem(“计数器”,CurrentTime)之后
  • var小时=3;
    var分钟=25;
    var秒=60;
    var CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    函数倒计时(){
    document.getElementById('lblDuration')。innerHTML=CurrentTime;
    第二--;
    如果(秒==-1){
    秒=59;
    分钟--;
    }
    如果(分钟==-1){
    分钟=59;
    小时--;
    }
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    }
    setInterval(函数(){
    倒计时();
    }, 1000);
    
  • 您需要声明变量
    Hour、Minute、Second、CurrentTime
    out-side
    if-else
    block。在这种情况下,它们不在
    函数CountDown()
    范围内
  • 您没有设置
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString()”
    localStorage.setItem(“计数器”,CurrentTime)之后
  • var小时=3;
    var分钟=25;
    var秒=60;
    var CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    函数倒计时(){
    document.getElementById('lblDuration')。innerHTML=CurrentTime;
    第二--;
    如果(秒==-1){
    秒=59;
    分钟--;
    }
    如果(分钟==-1){
    分钟=59;
    小时--;
    }
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    }
    setInterval(函数(){
    倒计时();
    }, 1000);
    
  • 您需要声明变量
    Hour、Minute、Second、CurrentTime
    out-side
    if-else
    block。在这种情况下,它们不在
    函数CountDown()
    范围内
  • 您没有设置
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString()”
    localStorage.setItem(“计数器”,CurrentTime)之后
  • var小时=3;
    var分钟=25;
    var秒=60;
    var CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    函数倒计时(){
    document.getElementById('lblDuration')。innerHTML=CurrentTime;
    第二--;
    如果(秒==-1){
    秒=59;
    分钟--;
    }
    如果(分钟==-1){
    分钟=59;
    小时--;
    }
    CurrentTime=Hour.toString()+”:“+Minute.toString()+”:“+Second.toString();
    }
    setInterval(函数(){
    倒计时();
    }, 1000);
    
    当本地存储可用时,您不需要设置小时、分钟和秒的值。因此,当执行倒计时函数时,它发现Second未定义,语句Second——将Second转换为NaN。 要修复它,只需初始化小时、分钟和秒变量。 我对您的代码进行了一点重构,希望能有所帮助:

    function CountDown() { 
        var currentTime =  getCurrentTime();                           
        printCurrentTime(currentTime)
        currentTime.second--;
        if (currentTime.second == -1) {
            currentTime.second = 59;
            currentTime.minute--;
        }
        if (currentTime.minute == -1) {
            currentTime.minute = 59;
            currentTime.hour--;
        }
        setCurrentTime(currentTime);
    }
    
      function setCurrentTime(newCurrentTime){
        if(localStorage) localStorage.setItem("counter", JSON.stringify(newCurrentTime));
        else setCurrentTime.storage = newCurrentTime;
      }
      function getCurrentTime(){
        var result = localStorage ? localStorage.getItem("counter") : setCurrentTime.storage;
        result = result || {hour:3, minute:25, second:60};
        if (typeof(result) === "string")result = JSON.parse(result);
        result.toString = function(){
            return result.hour +  ":" + result.minute + ":" + result.second;
        }
        return result;
      }
      function printCurrentTime(currentime){
            var domTag = document.getElementById('lblDuration');
            if(domTag) domTag.innerHTML = currentime.toString();
            else console.log(currentime);
      }
    setInterval(function () { CountDown(); }, 1000);
    

    当localStorage可用时,您不需要设置小时、分钟和秒的值。因此,当执行倒计时函数时,它发现Second未定义,语句Second——将Second转换为NaN。 要修复它,只需初始化小时、分钟和秒变量。 我对您的代码进行了一点重构,希望能有所帮助:

    function CountDown() { 
        var currentTime =  getCurrentTime();                           
        printCurrentTime(currentTime)
        currentTime.second--;
        if (currentTime.second == -1) {
            currentTime.second = 59;
            currentTime.minute--;
        }
        if (currentTime.minute == -1) {
            currentTime.minute = 59;
            currentTime.hour--;
        }
        setCurrentTime(currentTime);
    }
    
      function setCurrentTime(newCurrentTime){
        if(localStorage) localStorage.setItem("counter", JSON.stringify(newCurrentTime));
        else setCurrentTime.storage = newCurrentTime;
      }
      function getCurrentTime(){
        var result = localStorage ? localStorage.getItem("counter") : setCurrentTime.storage;
        result = result || {hour:3, minute:25, second:60};
        if (typeof(result) === "string")result = JSON.parse(result);
        result.toString = function(){
            return result.hour +  ":" + result.minute + ":" + result.second;
        }
        return result;
      }
      function printCurrentTime(currentime){
            var domTag = document.getElementById('lblDuration');
            if(domTag) domTag.innerHTML = currentime.toString();
            else console.log(currentime);
      }
    setInterval(function () { CountDown(); }, 1000);
    

    当localStorage可用时,您不需要设置小时、分钟和秒的值。因此,当执行倒计时函数时,它发现Second未定义,语句Second——将Second转换为NaN。 要修复它,只需初始化小时、分钟和秒变量。 我对您的代码进行了一点重构,希望能有所帮助:

    function CountDown() { 
        var currentTime =  getCurrentTime();                           
        printCurrentTime(currentTime)
        currentTime.second--;
        if (currentTime.second == -1) {
            currentTime.second = 59;
            currentTime.minute--;
        }
        if (currentTime.minute == -1) {
            currentTime.minute = 59;
            currentTime.hour--;
        }
        setCurrentTime(currentTime);
    }
    
      function setCurrentTime(newCurrentTime){
        if(localStorage) localStorage.setItem("counter", JSON.stringify(newCurrentTime));
        else setCurrentTime.storage = newCurrentTime;
      }
      function getCurrentTime(){
        var result = localStorage ? localStorage.getItem("counter") : setCurrentTime.storage;
        result = result || {hour:3, minute:25, second:60};
        if (typeof(result) === "string")result = JSON.parse(result);
        result.toString = function(){
            return result.hour +  ":" + result.minute + ":" + result.second;
        }
        return result;
      }
      function printCurrentTime(currentime){
            var domTag = document.getElementById('lblDuration');
            if(domTag) domTag.innerHTML = currentime.toString();
            else console.log(currentime);
      }
    setInterval(function () { CountDown(); }, 1000);
    

    当本地存储可用时,您可以