Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery-根据日期和时间显示/隐藏div_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript jquery-根据日期和时间显示/隐藏div,javascript,jquery,html,Javascript,Jquery,Html,我试图显示一个具体的div取决于日期和时间 因此,如果一天在周一到周五之间,时间在上午9点到下午5:30之间 然后它将显示div=class.open 如果在该时间之前或之后,它将显示div=class.closed 我有以下代码,可以在周一到周五上午9点到下午5点打开时显示.open div。它将显示从上午0点到上午9点的.closed div。但我需要它在周一到周五上午9点到下午5点之外的任何时间显示关闭的部门 所以我有两个问题: 如果不是星期一到星期五上午9点到下午5点,我该如何安排不公开

我试图显示一个具体的div取决于日期和时间

因此,如果一天在周一到周五之间,时间在上午9点到下午5:30之间

然后它将显示div=class.open

如果在该时间之前或之后,它将显示div=class.closed

我有以下代码,可以在周一到周五上午9点到下午5点打开时显示.open div。它将显示从上午0点到上午9点的.closed div。但我需要它在周一到周五上午9点到下午5点之外的任何时间显示关闭的部门

所以我有两个问题:

  • 如果不是星期一到星期五上午9点到下午5点,我该如何安排不公开的节目

  • 我如何添加分钟,比如从上午8:30到下午5:30的开放时间

  • 代码

    <div class="hours">We are OPEN</div>
    <div class="closed">We are CLOSED</div>
    $(document).ready(function () {
    
        var d = new Date();
        var dayOfWeek = d.getDay();
        var hour = d.getHours();
    
        // open hours Monday - Friday 9am - 5:pm = open
        if (dayOfWeek === 6 || dayOfWeek === 0 || hour <= 9 || hour >= 17) {
            $('.hours').hide();
        }
        // closed any other time than above * working from 0am -9am but none other
        if (dayOfWeek === 6 || dayOfWeek === 0 || hour <= 0 || hour >= 9) {
            $('.closed').hide();
        }
    
    
    });
    
    我们是开放的
    我们关门了
    $(文档).ready(函数(){
    var d=新日期();
    var dayOfWeek=d.getDay();
    var hour=d.getHours();
    //开放时间周一至周五上午9点至下午5点=开放
    如果(dayOfWeek==6 | | dayOfWeek==0 | |小时=17){
    $('.hours').hide();
    }
    //除上述时间外的任何其他时间关闭*从上午0点到上午9点工作,但其他时间不工作
    如果(dayOfWeek==6 | | dayOfWeek==0 | |小时=9){
    $('.closed').hide();
    }
    });
    
    以下是示例:

    if(dayOfWeek!==6&&dayOfWeek!==0&&hour>=9&&hour<17){
    $('.hours').show();
    $('.closed').hide();
    }
    否则{
    $('.hours').hide();
    $('.closed').show();
    }
    
    考虑使用momente.js、id代替类和定时刷新。

    比较指定日期的

    下面的代码设置当天的开始时间和结束时间,并检查当前时间是否在这两个时间戳之间

    var Now=new Date(),
    CurrentDay=Now.getDay(),
    OpeningTime=新日期(Now.getFullYear(),Now.getMonth(),Now.getDate(),8,30),
    ClosingTime=新日期(Now.getFullYear(),Now.getMonth(),Now.getDate(),17,30),
    Open=(Now.getTime()>OpeningTime.getTime()&&Now.getTime()
    .hours{
    显示:无;
    }
    
    我们开门
    
    基于Lucas的回答,我们已经结束了
    ,这是一个简单的补充,留出几分钟:

    var d=新日期();
    var dayOfWeek=d.getDay();
    var hour=d.getHours();
    var mins=d.getMinutes();
    var状态='打开';
    如果(dayOfWeek!==6&&dayOfWeek!==0&&hour>=9&&hour'30'){
    状态='关闭';
    }否则{
    状态='打开';
    }
    }否则{
    状态='关闭';
    }
    如果(状态==“打开”){
    $('.hours').show();
    $('.closed').hide();
    }否则{
    $('.hours').hide();
    $('.closed').show();
    }
    
    感谢所有的帮助@胡言乱语,回答得很好,谢谢。 @杰米,谢谢你的详细信息和脚本重写。工作完美

    我添加了下面的内容,以便它可以帮助将来的人寻找这个答案以及它的工作原理/如何修改它

    代码

    <div class="hours">We are OPEN</div>
    <div class="closed">We are CLOSED</div>
    $(document).ready(function () {
    
        var d = new Date();
        var dayOfWeek = d.getDay();
        var hour = d.getHours();
    
        // open hours Monday - Friday 9am - 5:pm = open
        if (dayOfWeek === 6 || dayOfWeek === 0 || hour <= 9 || hour >= 17) {
            $('.hours').hide();
        }
        // closed any other time than above * working from 0am -9am but none other
        if (dayOfWeek === 6 || dayOfWeek === 0 || hour <= 0 || hour >= 9) {
            $('.closed').hide();
        }
    
    
    });
    
    var Now=newdate();
    var CurrentDay=Now.getDay();
    //开放时间-24小时,所以上午9:30是9:30
    var OpeningTime=新日期(Now.getFullYear(),Now.getMonth(),Now.getDate(),11,36);
    //关门时间-24小时,所以下午5:30是17:30
    var ClosingTime=新日期(Now.getFullYear(),Now.getMonth(),Now.getDate(),17,30);
    var Open=(Now.getTime()>OpeningTime.getTime()&&Now.getTime()
    .hours{display:none;}
    我们是开放的
    
    如果您有两个相互排斥的条件,且其中一个条件始终为真,则这是If/else语句的主要用例,而不是两个ifs@dwreck08老实说,如果这是客户一年来提出的最荒谬的要求,那么今年就不错了。谢谢@Lucas。你知道如何增加分钟数吗?我尝试添加hour@AlwaysLearning查看我的答案,以获得一种更清晰的比较时间的方法它会起作用,但它很笨重。另外,请注意,它永远不会打到第二个
    ,否则如果hour='17'
    ,因为你的开场白正在检查它是否是<17谢谢你抓住了这一点,杰米--这里有太多的干扰。之所以考虑包含此示例,是因为OP看起来可能会更好地理解它。我记得一年前我自己也很清楚地站在他的立场上。有没有办法定义时区?似乎不是working@JozefPietrzak对于时区,您需要使用
    var d = new Date();
    var dayOfWeek = d.getDay();
    var hour = d.getHours();
    var mins = d.getMinutes();
    var status = 'open';
    
    if (dayOfWeek !== 6 && dayOfWeek !== 0 && hour >= 9 && hour <= 17){
        if (hour=='9' && mins < '30'){
            status = 'closed';
        }else if (hour=='17' && mins > '30'){
            status = 'closed';
        }else{
            status = 'open';
        }
    }else{
        status = 'closed';
    }
    
    if (status=='open') {
        $('.hours').show();
        $('.closed').hide();
    }else{
        $('.hours').hide();
        $('.closed').show();
    }