我刚开始学习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。非常感谢。
对于这种特殊情况,计算一年中的某一天并不是一个理想的解决方案,主要是因为当我将网站交给日常管理员时,他们将无法理解如何更新代码。
答案 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";
}
});