Javascript 为什么我的倒数计时器在2秒后跳了20分钟?
我的setInterval/timer()函数代码中有一个奇怪的错误 我有一个20分钟(0秒)的倒计时,它应该每秒钟倒一次,但倒计时很奇怪。(见下文CSV) 我试着用分和秒围绕解析,但它只会使显示的Javascript 为什么我的倒数计时器在2秒后跳了20分钟?,javascript,time,Javascript,Time,我的setInterval/timer()函数代码中有一个奇怪的错误 我有一个20分钟(0秒)的倒计时,它应该每秒钟倒一次,但倒计时很奇怪。(见下文CSV) 我试着用分和秒围绕解析,但它只会使显示的时间的输出变为NaN** var n=setInterval(计时器,1000); 函数计时器(){ var time=document.getElementById('timer').innerHTML; var分钟=时间[1]+时间[2]; var秒=时间[12]+时间[13]; 如果(秒==0
时间
的输出变为NaN**
var n=setInterval(计时器,1000);
函数计时器(){
var time=document.getElementById('timer').innerHTML;
var分钟=时间[1]+时间[2];
var秒=时间[12]+时间[13];
如果(秒==0){
分钟--;
秒=59;
}否则{
秒--;
}
document.getElementById('timer').innerHTML=(分钟+'minutes'+秒+'seconds');
}
30分00秒
因为每次函数调用都会覆盖变量,所以请将变量置于函数之外:
var n=setInterval(计时器,1000);
var time=document.getElementById('timer').innerHTML;
var分钟=时间[1]+时间[2];
var秒=时间[12]+时间[13];
函数计时器(){
如果(秒==0){
分钟--;
秒=59;
}否则{
秒--;
}
document.getElementById('timer').innerHTML=(分钟+'minutes'+秒+'seconds');
}
30分00秒
错误在于如何从字符串时间
For the string: "30 minutes 00 seconds"
time[1] = 0
time[2] = " "
当time[1]
或time[2]
恰好是空字符串时,它给出NaN
在这种情况下,对字符串的
--
操作将给出NaN
我将依靠将短语拆分为标记,而不是获得单个字符。尝试:
var n=setInterval(计时器,1000);
函数计时器(){
var time=document.getElementById('timer').innerHTML.split(“”;//将字符串“30分钟00秒”拆分为一个包含4个元素的数组。
var分钟=时间[0];
var秒=时间[2];
如果(秒==0){
分钟--;
秒=59;
}否则{
秒--;
}
document.getElementById('timer').innerHTML=(分钟+'minutes'+秒+'seconds');
}
30分00秒
并使延迟稍微小于1000秒,因为根据需要显示秒数时的部分秒数,可能会跳过一秒。我通常用900毫秒。