Отображение блоков по расписанию
помогите решить проблему: мне нужно, чтобы на сайте по расписанию с 21:31 до 09:59 скрывался один блок и появлялся другой. В 21:31 блок скрывается, но проблема в том, что в 22:00 он все равно появляется! Я так понимаю, потому что минуты 00 и уже не срабатывает правило >= 30 . Как сделать правильно? Спасибо.
$(function() {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
if ((h >= 21 && m >= 30) || (h <= 9 && m <= 59)){
$('#timeshow').show();
$('#timehidden').hide();
} else{
$('#timeshow').hide();
$('#timehidden').show();
}
});
#timeshow{display:none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="timeshow">Мы закрыты</div>
<div id="timehidden">Мы открыты</div>
Ответы (2 шт):
Автор решения: Aziz Umarov
→ Ссылка
Так посмотрите
$(function() {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
if ((h == 21 && m >= 30) || (h == 9 && m <= 59) || h > 21 || h < 9){
$('#timeshow').show();
$('#timehidden').hide();
} else{
$('#timeshow').hide();
$('#timehidden').show();
}
});
#timeshow{display:none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="timeshow">Мы закрыты</div>
<div id="timehidden">Мы открыты</div>
Автор решения: Greg--
→ Ссылка
Можно сравнить время а не часы отдельно, минуты отдельно
$(function() {
var d = new Date()
var elfrom = new Date()
elfrom.setHours(21,30,0);
var elto = new Date()
elto.setHours(9,59,0);
if(d>=elfrom||d<elto){
$('#timeshow').show();
$('#timehidden').hide();
}else{
$('#timeshow').hide();
$('#timehidden').show();
}
});
#timeshow{display:none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="timeshow">Мы закрыты</div>
<div id="timehidden">Мы открыты</div>