猿问

如何查找从12月1日开始的每个第二个星期二?

如果时间在范围内,我已经能够显示/隐藏按钮,但是,我如何修改它以检查日期是否是从 12 月 1 日开始的每个第二个星期二?


<p id="newButton">LIVE</p>


window.addEventListener("load", function(){

var newButton = document.getElementById("newButton");

const start = 12 * 60 + 30;

const end =  13 * 60 + 30;

const date = new Date(); 

const now = date.getHours() * 60 + date.getMinutes();


if(start <= now && now <= end) {

 newButton.style.display = "block";

 alert("in time");

}

else {

 newButton.style.display = "none";

 alert("offline");

}

}, false);


有只小跳蛙
浏览 97回答 1
1回答

沧海一幻觉

这是我在评论中建议的:const msPerDay = 24 * 60 * 60 * 1000;window.addEventListener("load", function(){&nbsp; var newButton = document.getElementById("newButton");&nbsp; const start = 12 * 60 + 30;&nbsp; const end =&nbsp; 13 * 60 + 30;&nbsp; const date = new Date();&nbsp;&nbsp; const now = date.getHours() * 60 + date.getMinutes();&nbsp; if(start <= now && now <= end&nbsp;&nbsp; &nbsp; &nbsp;&& Math.round((date - 1606798800000) / msPerDay) % 14 === 0) {&nbsp; &nbsp; newButton.style.display = "block";&nbsp; &nbsp; alert("in time");&nbsp; }&nbsp; else {&nbsp; &nbsp; newButton.style.display = "none";&nbsp; &nbsp; alert("offline");&nbsp; }}, false);请注意问题中有趣的歧义。“检查日期是否是从 12 月 1 日开始的每个第二个星期二?” 可以按照预期读作代表交替的星期二。但我最初的误读“任何一个月的第二个星期二”是完全可以理解的,如果考虑到所指出的开始日期本身就是星期二,我认为可能性稍小一些。1606798800000仅仅是 的结果new Date('2020-12-01').getTime()。不简单地在代码中包含类似的内容可能是一个愚蠢的优化。所以替代版本可能是&nbsp; if (start <= now && now <= end &&&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; Math.round((date - new Date(2020, 11, 1).getTime()) / msPerDay) % 14 === 0)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答