2016-06-02 3 views
-2
<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() или чего-то еще. Было бы очень полезно помочь.

спасибо.

+1

Было бы действительно сделать ваш код более читаемым, если вы используете немного длиннее имена переменных и, возможно, пытается переместить код, который почти так же, к функции. – Jieter

+0

Две вещи. Во-первых, не сбрасывайте весь код. Вместо этого создайте скрипку для людей, чтобы проверить. Во-вторых, не используйте столько опций в элементе управления select. Есть лучшие способы разрешить выбор, а затем выбирать из раскрывающегося списка 60 элементов. Вместо этого вы можете использовать ввод номера. – jitendragarg

+0

@jitendragarg Спасибо за ваш совет. Могу ли я узнать лучший способ разрешить выбор из 60 пунктов списка? – Nancy

ответ

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; 
    } 
    } 
+0

Спасибо. Теперь работает. Существует небольшая проблема, я хочу, чтобы msg отображался в течение 3 секунд после установки тревоги. Но сообщение не идет с экрана. В чем может быть проблема? – Nancy

+0

Нет кода для удаления сообщения о том, что звучит сигнал тревоги. Добавить тайм-аут 3000 к типу «сигнал будильника играет» IF, который удалит сообщение. –

Смежные вопросы