синтаксическая ошибка неожиданного нажатия в операторе if в js

#javascript #if-statement

#javascript #if-оператор

Вопрос:

Я получаю синтаксическую ошибку с неожиданным токеном < в строке 14, когда пытаюсь запустить этот скрипт в своем браузере. То, что я пытаюсь сделать, это открыть мои классы за 5 минут до начала занятий и все еще открывать при запуске вплоть до 5 минут до следующего занятия.

 <script>
//Current time
var date = new Date();
var time = date.getTime();

//Time checker
if(time >= 7:55 amp;amp; < 8:55){
    window.open('https://classroom.google.com/c/MTIyMjc3NTE0MzEw');
}
if(time >= 8:55 amp;amp; < 9:55){
    window.open('https://classroom.google.com/c/MTE1MjA4MzM5MDgz');
}
if(time >= 9:55 amp;amp; < 10:55){
    window.open('https://classroom.google.com/c/MTIyMjk4MzAxMjYx');
}
if(time >= 10:55 amp;amp; < 11:55){
    window.open('https://classroom.google.com/c/MTIzMjMyNzU4ODk2');
}
if(time >= 11:55 amp;amp; < 12:55){
    window.open('https://classroom.google.com/c/MTIzMTkzMjU1MjAx');
}
if(time >= 12:55 amp;amp; < 13:55){
    window.open('https://classroom.google.com/c/MTIyMjk4MzAxMjQx');
}
if(time >= 13:55 amp;amp; < 14:55){
    window.open('https://classroom.google.com/c/MTIyNDk3Mjk5NDQ2');
}
if(time >= 14:55 amp;amp; <= 15:00){
    window.open('https://classroom.google.com/c/MTIyNjk1NTQxMzYw');
}
</script>
  

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

1. 7:55 недопустимо; это просто не работает таким образом. Во-первых, .getTime() дает вам количество миллисекунд с 1 января 1970 года по UTC, а не время суток.

2. И это тоже недопустимо: amp;amp; < 8:55

3. Кроме того, вы должны указать обе стороны вашего сравнения в предложениях if: «if ((время > 3600000) amp;amp; (время < 7200000))»

4. Используйте getHours() и getMinutes() , преобразуйте это в минуты с полуночи, затем сравните это с вашими диапазонами.

Ответ №1:

date.getTime() не возвращает время суток. Если вам нужно время суток, используйте date.getHours() и date.getMinutes() . Затем вы можете преобразовать это в количество минут, прошедших с полуночи, которое вы можете использовать, чтобы определить, находится ли время в пределах ваших конкретных диапазонов.

 //Current time
var date = new Date();
var time = 60 * date.getHours()   date.getMinutes();

//Time checker
if(time >= (7 * 60   55) amp;amp; time < (8 * 60   55)){
    window.open('https://classroom.google.com/c/MTIyMjc3NTE0MzEw');
}
if(time >= (8 * 60   55) amp;amp; time < (9 * 60   55)){
    window.open('https://classroom.google.com/c/MTE1MjA4MzM5MDgz');
}
if(time >= (9 * 60   55) amp;amp; time < (10 * 60   55)){
    window.open('https://classroom.google.com/c/MTIyMjk4MzAxMjYx');
}
if(time >= (10 * 60   55) amp;amp; time < (11 * 60   55)){
    window.open('https://classroom.google.com/c/MTIzMjMyNzU4ODk2');
}
if(time >= (11 * 60   55) amp;amp; time < (12 * 60   55)){
    window.open('https://classroom.google.com/c/MTIzMTkzMjU1MjAx');
}
if(time >= (12 * 60   55) amp;amp; time < (13 * 60   55)){
    window.open('https://classroom.google.com/c/MTIyMjk4MzAxMjQx');
}
if(time >= (13 * 60   55) amp;amp; time < (14 * 60   55)){
    window.open('https://classroom.google.com/c/MTIyNDk3Mjk5NDQ2');
}
if(time >= (14 * 60   55) amp;amp; time < (15 * 60   55)){
    window.open('https://classroom.google.com/c/MTIyNjk1NTQxMzYw');
}  

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

1. я новичок в javascript, не могли бы вы объяснить, для чего нужны * и 60

2. * является умножением. 60 — это количество минут в часе.

3. Умножьте час на 60, чтобы получить количество минут, прошедших с полуночи. Простая арифметика.

Ответ №2:

Функция getTime() выдаст вам количество миллисекунд. Вместо этого попробуйте date.getHours(). Не забудьте передать аргумент, чтобы получить более конкретное значение