Javascript скрипт для определения нескольких дней недели - PullRequest
0 голосов
/ 21 марта 2020

Я не кодер javascript, но мне нужно изменить этот код, чтобы отображать строку состояния несколько раз в течение недели. Как я могу добавить к этому утверждению, чтобы охватить другой день недели или другое время в воскресенье? Мне нужно, чтобы бар показывался в воскресенье с 17:00 до 19:00 и в четверг с 7:00 до 9:00. Просто интересно, как я могу изменить это, чтобы работать. Может кто-нибудь помочь?

var d = new Date();
var Day = d.getDay();
var Time = d.getHours();
    if (d.getDay() == 0 && d.getHours() >= 9 && d.getHours() <= 12) {
      jQuery(".streaming").show();
    } else {
      jQuery(".streaming").hide();
    }

Ответы [ 3 ]

1 голос
/ 21 марта 2020

Прежде всего, вы должны понимать, как работают методы экземпляра Date, которые вы используете. Вы можете попробовать это здесь getDay , а здесь getHours .

Итак, ваш код выглядит примерно так:

var date = new Date();
var day = date.getDay();
var hour = date.getHours();

if ((day == 0 && hour >= 17 && hour <= 19) ||
    (day == 5 && hour >= 19 && hour <= 21)) {
    jQuery(".streaming").show();
} else {
    jQuery(".streaming").hide();
}

Вы должны взглянуть на оператор ИЛИ (||) в JavaScript.

0 голосов
/ 22 марта 2020

Спасибо за помощь. На основании вашей помощи я изменил ее, а также добавил определенную c минуту. Это правильный способ сделать это или я не должен использовать get.Minutes?

var date = new Date();
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();

if ((day == 0 && hour >= 08  && minute >= 50 && hour <= 12) ||
    (day == 0 && hour >= 16  && minute >= 50 && hour <= 19) ||
    (day == 5 && hour >= 18  && minute >= 50 && hour <= 21)) {
    jQuery(".streaming").show();
} else {
    jQuery(".streaming").hide();
}
0 голосов
/ 21 марта 2020

Я бы посоветовал вам провести такой рефакторинг

if (showForDay(d)) {
  jQuery(".streaming").show();
} else {
  jQuery(".streaming").hide();
}

function showForDay(d){
  // put all your conditions here
  if (d.getDay() == 0 && d.getHours() >= 9 && d.getHours() <= 12) return true
  if (d.getDay() == 0 && d.getHours() >= 12 && d.getHours() <= 14) return true
  ...
  return false // will be hidden
}
...