<script>
function updateClock() {
var now = new Date();
var time = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
document.getElementById('current').innerHTML = time;
setTimeout(updateClock, 1000);
}
function check()
{
var now= new Date();
var h=document.getElementById('hour').value;
var m=document.getElementById('minutes').value;
if((now.getHours()==h)&&(now.getMinutes()==m))
document.getElementById('display').innerHTML="Alarm tone is playing";
setTimeout(check, 1000);
}
function setAlarm(){
var msg="Alarm is set for ";
var ha=Number(document.getElementById('hour').value);
var ma=Number(document.getElementById('minutes').value);
var now=new Date();
var hc=now.getHours();
var mc=now.getMinutes();
var nh=0,nm=0;
if(hc>ha){
nh=24-hc;
//document.getElementById('display').innerHTML=nh;
nh=nh+ha;
if(mc>ma){
nh--;
nm=60-mc;
nm=nm+ma;
}
else
nm=ma-mc;
msg=msg+nh+" hours "+nm+" minutes from now ";
document.getElementById('alarmmsg').innerHTML=msg;
}
/*else if(hc==ha){
if(mc>ma){
nh=24-hc;
nh=nh+ha;
if(mc>ma){
nh--;
nm=60-mc;
nm=nm+ma;
}
else
nm=ma-mc;
}
}
else{
nh=0;
nm=ma-mc;
}
}
else{
nh=ha-hc;
if(mc>ma){
nh--;
nm=60-mc;
nm=nm+ma;
}
else{
nm=ma-mc;
}
}
msg=msg+nh+" hours "+nm+" minutes from now";
setTimeout(function(){
document.getElementById("alarm").innerHTML=msg;
},3000);*/
check();
}
</script>
以上是显示当前时间,设置闹钟以及计算和显示闹钟剩余时间(闹钟信息)的代码。
从上面的代码中删除一些评论,这里是更新后的代码fiddle
它不显示当前时间以及警报信息。
是因为多次使用setTimeout()还是其他原因。非常感谢帮助。
谢谢。
答案 0 :(得分:0)
你在那个庞大的IF声明中有一些缺失的括号:
这两行具体。
else
nm=ma-mc;
以下是经过纠正且功能正常的大型IF
if(hc>ha)
{ nh=24-hc;
//document.getElementById('display').innerHTML=nh;
nh=nh+ha;
if(mc>ma)
{ nh--;
nm=60-mc;
nm=nm+ma;
}
else
{ nm=ma-mc;
//msg=msg+nh+" hours "+nm+" minutes from now ";
//document.getElementById('alarmmsg').innerHTML=msg;
}
}
else if(hc==ha)
{ if(mc>ma)
{ nh=24-hc;
nh=nh+ha;
if(mc>ma)
{ nh--;
nm=60-mc;
nm=nm+ma;
}
else
{ nm=ma-mc;
}
}
else
{ nh=0;
nm=ma-mc;
}
}
else
{ nh=ha-hc;
if(mc>ma)
{ nh--;
nm=60-mc;
nm=nm+ma;
}
else
{ nm=ma-mc;
}
}