Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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日期计算显示/隐藏带有日期或逻辑的Div问题?_Javascript_Html - Fatal编程技术网

JavaScript日期计算显示/隐藏带有日期或逻辑的Div问题?

JavaScript日期计算显示/隐藏带有日期或逻辑的Div问题?,javascript,html,Javascript,Html,我正在尝试使用Javascript在特定日期之间显示div。有三个分区。我不知道我的逻辑中是有错误还是代码中有错误。顺便说一下,我正在自学JavaScript,所以我对预先打包的脚本不感兴趣。提前感谢您的建议 JavaScript: <script> const date = new Date(); let offset = 0; const threshold = new Date(); threshold.setMonth(7); //Januar

我正在尝试使用Javascript在特定日期之间显示div。有三个分区。我不知道我的逻辑中是有错误还是代码中有错误。顺便说一下,我正在自学JavaScript,所以我对预先打包的脚本不感兴趣。提前感谢您的建议

JavaScript:

<script>
    const date = new Date();
    let offset = 0;
    const threshold = new Date();
    threshold.setMonth(7); //January is 0!
    threshold.setDate(7);
    if (Date.now() > threshold) { 
      offset = 1;
}
var theDate = new Date();
var previous_year = date.getFullYear() - 1 + offset;
var current_year = date.getFullYear() + offset;
var next_year = date.getFullYear() + 1 + offset;

console.log(previous_year);
console.log(current_year);
console.log(next_year);
</script>

<script>
window.setInterval(function(){
  var current = new Date();
  var expiry = new Date("August 01")
  var expiry2 = new Date("February 01")

  if(current.getDate()>=expiry.getDate()){
    $('#one').show();
    $('#two').hide();
    $('#three').hide();
  }

  else if(current.getDate()<=expiry2.getDate()){
     $('#one').hide();   
     $('#two').show();
     $('#three').hide();
   }

  else{
     $('#one').hide();   
     $('#two').hide();
     $('#three').show();
   }
};
$('#one').show(); 
</script>

const date=新日期();
设偏移量=0;
常数阈值=新日期();
阈值。设定月(7)//一月是零!
设定日期(7);
如果(Date.now()>阈值){
偏移量=1;
}
var theDate=新日期();
var上一年=日期。getFullYear()-1+偏移量;
var current_year=date.getFullYear()+偏移量;
var next_year=date.getFullYear()+1+偏移量;
控制台日志(上一年);
控制台日志(当前年);
控制台日志(下一年);
setInterval(函数(){
var current=新日期();
var到期日=新日期(“2001年8月”)
var expiry2=新日期(“2001年2月”)
如果(current.getDate()>=expiry.getDate()){
$(“#一”).show();
$('#two').hide();
$('三').hide();
}
如果(当前.getDate()=2001年8月

DIV 2 Show对于初学者,您需要更改此选项

}; // <-- semi-colon is not expected here.
$('#one').show(); 
};//1)不要使用setInterval

2) 用于等待dom加载($(函数(){}))

3) 为什么在检查一个条件时尝试隐藏其他条件(它们已经隐藏)?我更喜欢3个简单的if's:

if (current.getDate() >= expiry.getDate()) {
    $('#one').show();
}

if (current.getDate() <= expiry2.getDate()) {
    $('#two').show();
}

if (current.getDate() > expiry2.getDate() && current.getDate() < expiry.getDate()) {
    $('#three').show();
}
if(current.getDate()>=expiry.getDate()){
$(“#一”).show();
}
if(current.getDate()expiry2.getDate()&¤t.getDate()

我没有检查比较的逻辑,但想法是一样的,只是尽可能简单地理解所显示的内容,以及您希望显示的内容?在JS中,您的
setInterval
忽略了一个
。在HTML中,您应该将
替换为
。。。你发现了我的严重错误!非常感谢。这很有道理,同时也让我觉得自己很愚蠢!
}) // <-- change to parenthesis.
$('#one').show(); 
if (current.getDate() >= expiry.getDate()) {
    $('#one').show();
}

if (current.getDate() <= expiry2.getDate()) {
    $('#two').show();
}

if (current.getDate() > expiry2.getDate() && current.getDate() < expiry.getDate()) {
    $('#three').show();
}