我需要停止时间由02.00到0.00。但它停止在-1.59或开始递减向前。在Angular 打字脚本我写了上面的代码。我做错了什么:
<html>
<body>
<input type="text" name="otp" placeholer="Enter your otp"/>
<div>Time left = <span id="timer"></span></div>
</body>
</html>
IN角形 typescript :
callMyCount(){
document.getElementById('timer').innerHTML ="02" + ":" + "00";
var myTimer=setInterval(startTimer,1000);
function startTimer() {
var presentTime = document.getElementById('timer').innerHTML;
var timeArray = presentTime.split(/[:]+/);
var m = parseInt(timeArray[0]);
var s = checkSecond((parseInt(timeArray[1]) - 1));
if(s==59){m=m-1}
if(m<0 && s==59){alert("Timeout for otp");
clearTimeout(myTimer);}
document.('timer').innerHTML = m + ":" + s;
}
function checkSecond(sec) {
if (sec < 10 && sec >= 0) {sec = "0" + sec};
if (sec < 0) {sec = "59"};
return sec;
}
}
1条答案
按热度按时间qvtsj1bj1#
使用内部
setTimeout
可以做得更简单,它执行递归调用并只计算秒数:第一个
timerOn
变量只用于以编程方式停止倒计时。如果加载另一个页面则无用。