Ошибка настройки JavaScript

#javascript #html #settimeout

#javascript #HTML #settimeout

Вопрос:

У меня есть некоторый код JavaScript, который выглядит так:

     <script>
      // For todays date;
      var today = new Date();
      var time = today.getHours()   ":"   today.getMinutes()   ":"   today.getSeconds();
      var n = time;
      var start = '6:56:00'
      var end   = '7:09:59'

      setTimeout(function run(){
                console.log()
                if (n >= start amp;amp; n < end) 
                {
                  window.location.href = "localhost/template/script2.html";
                } else
                {
                  location.reload(true);
                }
            
            console.log(run, 1000);
    
      }, 1000);
    </script>
  

Я хочу, чтобы программа запускалась только в 6:56:00 — 7:09:59

но он выполняется на 6:05:00 — 6:19:59 и 6:56:00 — 7:09:59 Что мне делать?

Ответ №1:

Вы сравниваете строки, когда должны сравнивать целые числа или объекты даты.

Ответ №2:

необходимо сравнить объект Date. поэтому вы должны использовать Date.parse

 console.log(Date.parse('01/01/0001 10:20:45') > Date.parse('01/01/0001 5:10:10'))


// For todays date;
      var today = new Date();
      var time = today.getHours()   ":"   today.getMinutes()   ":"   today.getSeconds();
      var n = time;
      var start = '6:56:00'
      var end   = '7:09:59'

      setTimeout(function run(){
                console.log()
                if (Date.parse("01/01/0001 "  n) >= Date.parse("01/01/0001 "   start) amp;amp; n < Date.parse("01/01/0001 " end)) 
                {
                  window.location.href = "localhost/template/script2.html";
                } else
                {
                  location.reload(true);
                }
            
            console.log(run, 1000);
    
      }, 1000);  

Комментарии:

1. если это правильно, дайте мне знать об этом. и проверено как ответ.

2. Я пробовал, но программа не запускается localhost/template/script2.html