Logi c будильник не работает в ванили JavaScript - PullRequest
0 голосов
/ 12 февраля 2020

Я не могу сделать правильную логику c для простого ванильного javascript будильника, который показывает сообщение / воспроизводит звук в то время, которое установил пользователь ... помогите мне сделать логи c вправо.

Вот мой javascript код:

        <script>
            function setAlarm(){
             //taking value  of time
            var a=document.getElementById("H").value;
            var b=a*3600000;//converted to millisecound
            var c=document.getElementById("M").value;
            var d=c*60000;//converted to millisecound
            var e=d+b;//addition of millisecound
            

             //live values of time
            var f=h*3600000;//converted to millisecound
            var g=m*60000;//converted to millisecound
            var i=g+h;//addition of millisecound

                

                var j=0;
                if(i>=e){
                   j=i-e;
                }else{
                   j=e-i;
                }//else
            document.getElementById("demo2").innerHTML=j;
                setInterval(test,j);
                if (d==g){
                    console.log("if called");
                    test();
                }//if
            }
            function test(){
                console.log("test called")
                document.getElementById("demo2").innerHTML="its work";
            }
            var d=new Date();
               var h=d.getHours();
               document.getElementById("hours").innerHTML=h;
   
               var m=d.getMinutes();
               document.getElementById("minutes").innerHTML=m;
   
               var s=d.getSeconds();
               document.getElementById("secound").innerHTML=s;



            setInterval(repeat,1000);

            function repeat(){
               var d=new Date();
               var h=d.getHours();
               document.getElementById("hours").innerHTML=h;
   
               var m=d.getMinutes();
               document.getElementById("minutes").innerHTML=m;
   
               var s=d.getSeconds();
               document.getElementById("secound").innerHTML=s;
               
            }
            var i=0;
           function ChangeTheam(){
                i++;
                if(i%2){
                    document.body.style.backgroundColor= "black";
                    document.getElementById("hours").innerHTML.style.color = "blue";
                }else{
                    document.body.style.backgroundColor= "white";
                }//else
           }//change theam function
            
        </script>

Я могу предоставить HTML код, если кто-то захочет, но не думаю, что это будет необходимо, так как я не могу сделать логи c прямо в Первый пункт.

Спасибо :)

1 Ответ

0 голосов
/ 12 февраля 2020

В вашем коде

 //live values of time
 var f=h*3600000;//converted to millisecound
 var g=m*60000;//converted to millisecound
 var i=g+h;//addition of millisecound`

Вы добавили g+h вместо g+f, поэтому время срабатывания вашего будильника может быть значительно короче.

var s=d.getSeconds();
document.getElementById("secound").innerHTML=s;

Я не уверен, что это именно то, что вы указали для элемента, я полагаю, вы имели в виду «второй», а не «второстепенный»

В противном случае я не вижу проблем с вашим кодом и должен нормально работать.

...