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