#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