2016-04-27 72 views
0

基本上我想为商店创建营业时间。Javascript商店营业时间

店内营业时间为12:00至15:00和17:00至22:00。 我使它显示模式页面上的当前时间,其中“回车”按钮用于显示当前时间,但我希望在非工作时间内进入站点的按钮被移除,以便用户不能进入网页。

我也希望看到如何改变它取决于一天,例如,如果星期二的营业时间为11:00 - 15:00和17:00 - 23:00。

我用openStatus.js

到目前为止,这是我的代码:

var d = new Date(); 
var n = d.getDay() 
var h = d.getHours(); 

if (n == 1) { 

if (h >= 22 && h < 12) { 
    $(".enter-button").remove(); 
    } 
if (h > 15 && h <= 17) 
    $(".enter-button").remove(); 
} 
else { 
    $(".enter-button").css("display", "block"); 
} 

也许我应该得到的时间从0 - 24数组中指定开放时间变量,并做到这一点的方法? 谢谢,因为我仍然在学习这些东西。

+1

此代码是否按照您期望的方式工作? – WillardSolutions

+1

你的第一个条件将永远不会执行。 'h'不能大于或等于22且小于12. – RJM

+1

'h> = 22 && h <12'什么数字大于22且小于12? –

回答

3

乘坐看这个。

这有点粗糙,它应该工作。我没有使用openStatus.js

这不考虑时区。

<script> 

    var d = new Date(); 
    var n = d.getDay(); 
    var now = d.getHours() + "." + d.getMinutes(); 
    var weekdays = [ 
     ["Sunday", 9.30, 12.00, 15.30,22.00], 
     ["Monday", 8.30, 12.00, 15.30,19.00], 
     ["Tuesday", 8.30, 12.00, 15.30,19.00], 
     ["Wednesday", 8.30, 12.00, 15.30,19.00], 
     ["Thursday", 8.30, 12.00, 15.30,19.00], 
     ["Friday", 8.30, 11.30], 
     ["Saturday"] // we are closed, sorry! 
    ]; 
    var day = weekdays[n]; 


    if (now > day[1] && now < day[2] || now > day[3] && now < day[4]) { 
     console.log("We're open right now!"); 
    } 
    else { 
     console.log("Sorry, we're closed!"); 
    } 


</script> 
+0

这真棒!谢谢 – xerox

+0

是的,但请记住设定时区。更好的解决方案是服务器端。 – Enrico

+0

这真的是一个本地商店(食品交付),所以它不会真的影响我的想法。但是对未来的工作可能是很好的锻炼。再次感谢。 – xerox

0

我认为,这是你在找什么,移动else进入第一if,看到小提琴https://jsfiddle.net/c259LrpL/5/

我更换hn硬编码值测试

<input type="button" value="enter button" class="enter-button"> 
<script> 
    var n = 1; 
    var h = 13; 

    if (n == 1) { 

    if (h >= 22 || h < 12) { 
     $(".enter-button").remove(); 
    } 
    else if (h > 15 && h <= 17){ 
     $(".enter-button").remove(); 
    } 
    else { //Move your else inside the first if() 
     $(".enter-button").css("display", "block"); 
    } 
    } 

</script> 
+0

这可能工作。我会试试看。谢谢你,兄弟! – xerox