根据日期和时间显示/隐藏div

时间:2019-10-30 03:52:55

标签: javascript jquery

我正在尝试根据日期和时间显示特定的div。

在星期一至星期五的上午8点至晚上7点以及星期六的上午8:30至下午4点的时段内,将显示一个带有“我们开放”信息的div。在这些时间以外,将显示关闭的消息div。

我看过其他帖子(jquery - show / hide div depending on day and time)可以在一天之内做到这一点,但在两个不同的工作日小组和不同的开放时间中却无法实现,而且我还无法弄清楚如何使其工作。

任何帮助将不胜感激

2 个答案:

答案 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>