使用JQuery根据月份和日期范围显示/隐藏div

时间:2018-06-18 14:42:19

标签: javascript jquery

我刚开始学习JQuery而且我正在尝试编写一个脚本,该脚本只会在5月1日之后和6月1日之前在div中显示文本。这需要忽略年份而只显示这些限制之间的潜水。以下是我一直在尝试的内容:

 <script type="text/javascript">
    var today = new Date();
    //month begins with 0

     if ((today.getMonth() > 04 && today.getDate() > 01) || (today.getMonth() < 05 && today.getDate() < 01)){
        $('#cellOne').show(); 
      }
       else {
      $('#cellOne').hide();
    }
    </script>

由于今天不在这些限制之间,我相信div应该被隐藏,但我不能让它工作。任何人都可以把我放在正确的道路上吗?我可能有一个逻辑错误,因为我不熟悉JavaScript和JQuery。非常感谢。

对于这种特殊情况,计算一年中的某一天并不是一个理想的解决方案,主要是因为当我将网站交给日常管理员时,他们将无法理解如何更新代码。

1 个答案:

答案 0 :(得分:0)

在@Alex

的带领下,我想出了答案

它似乎工作并认为它可能对其他人有用。

$(document).ready(() => {
    // MM - DD - YYYY
  function getDayFromDate(dateString) {
    var now = new Date(dateString);
    var start = new Date(now.getFullYear(), 0, 0);
    var diff = now - start;
    var oneDay = 1000 * 60 * 60 * 24;
    return Math.floor(diff / oneDay);
  }

  let cutoffLow = getDayFromDate("05/01");
  let cutoffHigh = getDayFromDate("06/01");
  let now = getDayFromDate(new Date());

  if(now > cutoffLow && now < cutoffHigh) {
    document.querySelector('#cellOne').style.display = "";
  }
  else{
         document.querySelector('#cellOne').style.display = "none";
}
});