在周末隐藏元素

时间:2014-08-11 09:18:27

标签: javascript

我有一些HTML / javascript元素,我想只在周一 - 周五显示

我怎样才能做到这一点?我只知道如何使用此代码在特定日期隐藏它

window.setInterval(function(){

  var current = new Date();
  var expiry  = new Date("October 30, 2014 12:00:00")

  if(current.getTime()>expiry.getTime()){
    $('#div1').hide();
  }

}, 3000);

$('#one').show(); 

7 个答案:

答案 0 :(得分:0)

您可以使用Date.getDay()获取星期几。在第6天和第0天隐藏它。

答案 1 :(得分:0)

首先,使用JS Date object获取星期几

var DayOfTheWeek = new Date().getDay();  //0=Sun, 1=Mon, ..., 6=Sat

然后,根据当天,显示元素

if(DayOfTheWeek == 6 || DayOfTheWeek == 0){
    $('#div1').hide();
} else {
    $('#div1').show();
}

答案 2 :(得分:0)

函数Date.getDay()将成为你的朋友。它返回一周中每天的数字。星期日=> 0;星期一=> 1; ...

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

因此,您可以轻松检查当天是否在1到5之间。如果是,则显示您的内容:)

答案 3 :(得分:0)

使用getDay功能。

 if(current.getDay() == 6 || current.getDay() == 0){
    $('#div1').hide();
  }

答案 4 :(得分:0)

对于LOL来说,这里是一个单线程,演示如何通过(变量)名称调用jQuery函数,并使用模运算来避免对.getDay()的两次单独调用:

$('#div1')[(date.getDay() + 6) % 7 < 5 ? 'show' : 'hide']();

模运算因此起作用:

Sun = 0, + 6 =  6, mod 7 = 6
Mon = 1, + 6 =  7, mod 7 = 0
...
Fri = 5, + 6 = 11, mod 7 = 4
Sat = 6, + 6 = 12, mod 7 = 5

因此周一至周五给出0 .. 4,周六和周日给出5和6,允许进行单一比较以检查周末与工作日。

对于后人来说,这是一个潜在有用的辅助功能:

Object.defineProperty(Date.prototype, 'isWeekday', { value: function() {
    return (this.getDay() + 6) % 7 <= 4;
}));

用法:

if (mydate.isWeekday()) {
    ...
}

答案 5 :(得分:0)

这是一个稍微易于维护的版本。默认情况下应显示元素#div1,并且只有在检测到适当的天数时才隐藏。

var days_to_hide = {
  0 : "Sunday",
  6 : "Saturday"
}

var today = new Date().getDay();
if( typeof days_to_hide[ today ] !== "undefined" ){
  $('#div1').hide();
}

更易于维护的原因是您可以自由编辑days_to_hide定义,而无需修改实际执行hide()命令的条件表达式。

答案 6 :(得分:-2)

试试这段代码

var d = new Date();
if(d.getDay() == 6 || d.getDay() == 7)
{
   $('#div1').hide();
}