我正在尝试根据日期和时间显示特定的div。
在星期一至星期五的上午8点至晚上7点以及星期六的上午8:30至下午4点的时段内,将显示一个带有“我们开放”信息的div。在这些时间以外,将显示关闭的消息div。
我看过其他帖子(jquery - show / hide div depending on day and time)可以在一天之内做到这一点,但在两个不同的工作日小组和不同的开放时间中却无法实现,而且我还无法弄清楚如何使其工作。
任何帮助将不胜感激
答案 0 :(得分:0)
您可以执行以下操作:
<script>
function ShowOnTime(element){
var daysWorking = [{dayWorking: 1, startTimeWorking: '8', endTimeWorking: '19'}, {dayWorking: 2, startTimeWorking: '8', endTimeWorking: '19'}, {dayWorking: 3, startTimeWorking: '8', endTimeWorking: '19'}, {dayWorking: 4, startTimeWorking: '8', endTimeWorking: '19'}, {dayWorking: 5, startTimeWorking: '8', endTimeWorking: '19'}, {dayWorking: 6, startTimeWorking: '830', endTimeWorking: '16'}];
var a = new Date();
var nowDay = a.getDay(); //0-6 denotes Sunday, monday, tuesday etc etc.
var nowHours = a.getHours();
var nowMinutes = a.getMinutes();
if(daysWorking.find(o => o.dayWorking === nowDay)){
if (daysWorking.find(o => o.startTimeWorking <= (nowHours+''+nowMinutes)) && daysWorking.find(o => o.endTimeWorking >= (nowHours+''+nowMinutes))) {
$(element).show();
} else {
$(element).hide();
}
} else {
$(element).hide();
}
}
$(document).ready(function(){
ShowOnTime("#TestDiv");
});
</script>
希望,这会让您有所想法。
答案 1 :(得分:0)
您只需要在该答案中为星期六添加一个条件
var Now = new Date('11/4/2019 10:11:00');
var CurrentDay = Now.getDay();
if (CurrentDay!=6)
{
var OpenHour=8;
var OpenMin=0;
var CloseHour=19;
var CloseMin=0;
}
else
{
var OpenHour=8;
var OpenMin=30;
var CloseHour=16;
var CloseMin=0;
}
var OpeningTime = new Date(Now.getFullYear(), Now.getMonth(), Now.getDate(), OpenHour, OpenMin);
var ClosingTime = new Date(Now.getFullYear(), Now.getMonth(), Now.getDate(), CloseHour, CloseMin);
var Open = (Now.getTime() > OpeningTime.getTime() && Now.getTime() < ClosingTime.getTime());
if (CurrentDay !== 0 && Open) {
$('.openstatus').toggle();
}
.hours {
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hours openstatus">We are OPEN</div>
<div class="closed openstatus">We are CLOSED</div>