//Not finished -- disregard
function evaluate() {
var cdate = new Date();
var cday = cdate.getDay();
var chr = cdate.getHours();
var cmin = cdate.getMinutes();
var csec = cdate.getSeconds();
//Luni
if (cday === 1) {
countDown(5, 0, 0, 100, "countdown")
}
//Marti sau Miercuri
if ((cday === 2) || (cday === 3)) {
countDown(5, 0, 0, 0, "countdown")
}
//Joi
if (cday === 4) {
countDown(0, 0, 0, 100, "countdown")
}
//Vineri sau Sambata
if ((cday === 5) || (cday === 6)) {
countDown(5, 0, 0, 0, "countdown")
}
//Duminica
if (cday === 0) {
countDown(5, 0, 0, 0, "countdown")
}
}
function countDown(sec, min, hour, day, elem) {
var element = document.getElementById(elem);
element.innerHTML = "Urmatorul eveniment este in " + day + " zile " + hour + " ore " + min + " minute " + sec + " secunde.";
if ((sec === 0) && (min > 0)) {
sec = 59;
min = min - 1;
}
if ((sec === 0) && (min === 0) && (hour > 0)) {
sec = 59;
min = 59;
hour = hour - 1;
}
if ((sec === 0) && (min === 0) && (hour === 0) && (day > 0)) {
sec = 59;
min = 59;
hour = 23;
day = day - 1;
}
if ((min < 0) && (day > 0)) {
min = 59;
day = day - 1;
}
if ((min < 0) && (day === 0) && (day > 0)) {
min = 59;
hour = 23;
day = day - 1;
}
if ((hour < 0) && (day > 0)) {
hour = 23;
day = day - 1;
}
//Here is the deadline if
if ((day === 0) && (hour === 0) && (min === 0) && (sec < 0)) {
clearTimeout(timer);
elem.innerHTML = "Evenimentul este in decurs!";
}
sec--;
var timer = setTimeout('countDown(' + sec + ',' + min + ',' + hour + ',' + day + ',"' + elem + '")', 1000);
}
evaluate();
<p id="countdown"></p>
我的JavaScript无法正常工作。当所有值都达到0时,定时器应该清除。
我的目标是:评估日期 - >显示 - >重置。
if ((day === 0) && (hour === 0) && (min === 0) && (sec < 0)) {
clearTimeout(timer);
}
任何人都可以帮助我吗? 我已经设置了一个代码片段。先谢谢你。
尝试:'window.clearTimeout(定时器);' – Derek
此外,您还需要声明'time'在全球范围内 – Derek
嗯,你在呼唤再次setTimeout,即使你做了clearTimeout。那么你期望什么?也许在'clearTimeout ...'后加''return;'' – trincot