Нужно раз в сколько-то секунд проверять текущее время браузера и ставить классы, в зависимости от часа.
По-хорошему, не нужно при каждой проверке убирать-ставить классы, когда они и так стоят, поэтому код чуть усложняется добавлением текущего состояния
state
:
(function($el) {
var state, timer;
function checkTime() {
var h = (new Date).getHours(), state_prev = state;
state = ( h >= 9 && h < 22) ? 'DAY' : 'NIGHT';
if( state_prev !== state) { // только что изменился статус
if( state === 'DAY') $el.removeClass('disable').addClass('visible');
else if( state === 'NIGHT') $el.addClass('disable').removeClass('visible');
}
}
checkTime(); // вызвать один раз сразу же
timer = window.setInterval(checkTime, 10000); // раз в 10 секунд перепроверять
})(
$('.opened') // jQuery-выборка элементов, которым переключать класс
);
Неоптимальная
плохая версия, но покороче:
var $el = $('.opened'); // jQuery-выборка элементов, которым переключать класс
window.setInterval( function() {
var h = (new Date).getHours(); // текущий час по локальному времени
if( h >= 9 && h < 22) $el.removeClass('disable').addClass('visible'); // кабак открыт
else $el.addClass('disable').removeClass('visible'); // кабак закрыт
}, 10000); // раз в 10 секунд перепроверять