javascript - 项目完成后,如何停止其中一个计数计时器(例如 countup2)并显示完成前的经过时间?
问题描述
我在一页上运行多个计时器。我不确定如何在该特定项目完成时停止单个计时器,并且仍然显示计时器以显示完成所花费的总时间。
例如,如果 countup2 在 2019 年 1 月 5 日完成,那么正确的语法是什么/在哪里?
HTML
<div class="countup" id="countup1">
<p class="days">00</p>
<p class="timeRefDays">Days</p>
<p class="hours">00</p>
<p class="timeRefHours">hrs</p>
<p class="minutes">00</p>
<p class="timeRefMinutes">min</p>
<p class="seconds">00</p>
<p class="timeRefSeconds">sec</p>
</div>
<div class="countup" id="countup2">
<p class="days">00</p>
<p class="timeRefDays">Days</p>
<p class="hours">00</p>
<p class="timeRefHours">hrs</p>
<p class="minutes">00</p>
<p class="timeRefMinutes">min</p>
<p class="seconds">00</p>
<p class="timeRefSeconds">sec</p>
</div>
<div class="countup" id="countup3">
<p class="days">00</p>
<p class="timeRefDays">Days</p>
<p class="hours">00</p>
<p class="timeRefHours">hrs</p>
<p class="minutes">00</p>
<p class="timeRefMinutes">min</p>
<p class="seconds">00</p>
<p class="timeRefSeconds">sec</p>
</div>
<script>
/*
* Basic Count Up from Date and Time
*/
window.onload = function() {
// Month,Day,Year,Hour,Minute,Second
upTime('jan,01,2018,00:00:00', 'countup1'); // ****** Change this line!
upTime('dec,01,2018,10:10:10', 'countup2'); // ****** Change this line!
upTime('dec,01,2018,10:10:10', 'countup3'); // ****** Change this line!
}
function upTime(countTo, id) {
now = new Date();
countTo = new Date(countTo);
difference = (now - countTo);
days = Math.floor(difference / (60 * 60 * 1000 * 24) * 1);
hours = Math.floor((difference % (60 * 60 * 1000 * 24)) / (60 * 60 *
1000) * 1);
mins = Math.floor(((difference % (60 * 60 * 1000 * 24)) % (60 * 60 *
1000)) / (60 * 1000) * 1);
secs = Math.floor((((difference % (60 * 60 * 1000 * 24)) % (60 * 60 *
1000)) % (60 * 1000)) / 1000 * 1);
idEl = document.getElementById(id);
idEl.getElementsByClassName('days')[0].innerHTML = days;
idEl.getElementsByClassName('hours')[0].innerHTML = hours;
idEl.getElementsByClassName('minutes')[0].innerHTML = mins;
idEl.getElementsByClassName('seconds')[0].innerHTML = secs;
setInterval(function() {
upTime(countTo, id);
}, 1000);
}
</script>
<style>
.countup {
text-align: center;
font-family: verdana;
font-size: 20px;
font-weight: bold;
}
.countup p {
display: inline-block;
padding: 10px;
background: #F94EEE;
margin: 0 0 20px;
border-radius: 3px;
color: white;
min-width: 2.6rem;
}
</style>
解决方案
我将查看Date API 以获取有关设置计时器的一些示例。
推荐阅读
- node.js - 在 Node.js 中使用 try..catch 处理错误
- arrays - 预期 BEGIN_ARRAY 但在 androidstudio 中的第 1 行第 1 列路径 $ 为字符串
- android - Android Studio 上的 OpenCV
- java - 理解 java.lang.StringIndexOutOfBoundsException: length=X; 区域开始=Y;区域长度=Z
- c# - 单元测试 API 调用
- r - 提取列表元素并连接成r中的字符串
- c# - 如何在 Xamarin Android 中立即(在 2-3 秒内)获取当前位置
- python - 在python中的进程之间共享内存
- slurm - 是否可以通过仅提供作业名称的开头来使用“sacct --name”?
- esp8266 - esp8266 连接到 wifi 但不继续程序