Javascript jquery-根据日期和时间显示/隐藏div
我试图显示一个具体的div取决于日期和时间 因此,如果一天在周一到周五之间,时间在上午9点到下午5:30之间 然后它将显示div=class.open 如果在该时间之前或之后,它将显示div=class.closed 我有以下代码,可以在周一到周五上午9点到下午5点打开时显示.open div。它将显示从上午0点到上午9点的.closed div。但我需要它在周一到周五上午9点到下午5点之外的任何时间显示关闭的部门 所以我有两个问题: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 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();
}