如何解决如果超过60分钟,如何从小时开始计时?
这是我的考试时间脚本。这段代码可以正常工作,但是当$ time = 90分钟时,我想像这样剩余1:30分钟而不是剩下90分钟来输出。有人可以帮忙吗?
<script type="text/javascript">
var timeoutHandle;
function countdown(minutes) {
var seconds = 60;
var mins = minutes
function tick() {
var counter = document.getElementById("timer");
var current_minutes = mins-1
seconds--;
counter.innerHTML =
current_minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
if( seconds > 0 ) {
timeoutHandle=setTimeout(tick,1000);
} else {
if(mins > 1){
setTimeout(function () { countdown(mins - 1); },1000); }
}
}
tick();
}
countdown('<?php echo $time; ?>');
</script>
这是我的刀片html文件:
<div id="timer"></div>
解决方法
这是一种方法。
仅当它们大于0时,才会显示小时和分钟:
var timeoutHandle;
function secondsToTime(seconds){
if(seconds < 60) {
return seconds
} else {
if(seconds/60 < 60) {
const mins = Math.floor(seconds/60)
return `${mins}:${seconds-mins*60}`
} else {
const hours = Math.floor((seconds/60)/60)
const mins = Math.floor(seconds/60 - hours*60)
return `${hours}:${mins}:${seconds-mins*60-hours*60*60}`
}
}
}
function countdown(minutes) {
var seconds = minutes * 60
function tick() {
var counter = document.getElementById("timer")
seconds--
counter.innerHTML = secondsToTime(seconds)
if(seconds > 1) timeoutHandle=setTimeout(tick,1000)
}
tick()
}
countdown(70)
<div id="timer"></div>
,
在制作计数器时,您应该考虑使用setInterval
而不是setTimeout
。您的代码可能看起来像
<script type="text/javascript">
var timeoutHandle;
function countdown(minutes) {
var mins = minutes;
var seconds = mins * 60;
function tick() {
var counter = document.getElementById("timer");
seconds--;
var hours = Math.floor(seconds / 3600);
var tmp = seconds % 3600;
var m = Math.floor(tmp / 60);
var s = tmp % 60;
var format = hours > 0 ? (hours + ":") : "";
format += (m > 0 ? (m + ":") : "00:") + s.toString();
counter.innerHTML = format;
}
var interval = setInterval(tick,1000);
if (seconds <= 0) clearInterval(interval);
}
countdown('<?php echo $time; ?>');
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。