[英]Simple javascript conditions
我有一个简单的 javascript 条件。 我是 javascript 的新手,所以我正在努力解决这个问题。 如果有人能帮我解决这个问题,那就太好了。
我想在特定时间段内显示一个 div。 在所有其他情况下,div 不应该是可见的。
var currentdate = new Date(); var d1=new Date("2021-05-18, 02:35:00"); var d2=new Date("2021-05-18, 02:36:00"); if((currentdate>=d1)&&(currentdate<=d2)) { document.getElementById("timer").style.display = "block"; } else { document.getElementById("timer").style.display = "none"; }
#timer{ width:100px; height:100px; background:#ff934f; }
<div id="timer"></div>
你应该学习如何调试你的代码。 通过添加“调试;” 到您的代码中,或在控制台中添加断点(按 F12 打开)。
我将尝试打印console.log(1 < currentdate);
和console.log(d1 < currentdate)
。 其中一个应该返回true
,对吧?
var currentdate = new Date(); var d1 = new Date("2021-05-18, 02:35:00"); var d2 = new Date("2021-05-18, 02:36:00"); console.log(d1 < currentdate); // false console.log(d1 > currentdate); // false if ((currentdate >= d1) && (currentdate <= d2)) { document.getElementById("timer").style.display = "block"; } else { document.getElementById("timer").style.display = "none"; }
#timer { width: 100px; height: 100px; background: #ff934f; }
<div id="timer"></div>
不,两者都返回 false。 为什么?
让我们打印d1
日期变量。
var currentdate = new Date(); var d1 = new Date("2021-05-18, 02:35:00"); var d2 = new Date("2021-05-18, 02:36:00"); console.log("d1", d1); // null if ((currentdate >= d1) && (currentdate <= d2)) { document.getElementById("timer").style.display = "block"; } else { document.getElementById("timer").style.display = "none"; }
#timer { width: 100px; height: 100px; background: #ff934f; }
<div id="timer"></div>
它输出null
,因此创建该日期的声明是错误的。 为了从字符串创建日期,您可以使用Date.parse() 。 但这也会导致 null,因为您需要从日期字符串中删除逗号: 2021-05-18 02:35:00
(日期和时间之间没有逗号)。
var currentdate = new Date(); var d1 = Date.parse("2021-05-18 02:35:00"); var d2 = Date.parse("2021-05-18 02:36:00"); console.log("d1", d1); // 1621298100000 console.log("currentdate is newer:", currentdate > d1) // true console.log("currentdate is older:", currentdate < d1) // false if ((currentdate >= d1) && (currentdate <= d2)) { document.getElementById("timer").style.display = "block"; } else { document.getElementById("timer").style.display = "none"; }
#timer { width: 100px; height: 100px; background: #ff934f; }
<div id="timer"></div>
如果我们只是从 `new Date("2021-05-18, 02:35:00") 中删除逗号,会导致同样的结果吗?
var currentdate = new Date(); var d1 = new Date("2021-05-18 02:35:00"); var d2 = new Date("2021-05-18 02:36:00"); console.log("d1", d1); // 2021-05-18T00:35:00.000Z console.log("currentdate is newer:", currentdate > d1) // true console.log("currentdate is older:", currentdate < d1) // false if ((currentdate >= d1) && (currentdate <= d2)) { document.getElementById("timer").style.display = "block"; } else { document.getElementById("timer").style.display = "none"; }
#timer { width: 100px; height: 100px; background: #ff934f; }
<div id="timer"></div>
也许试试这个? 这样,您将拥有 unix 时间戳的所有内容。
var currentdate = Date.now();
var d1 = new Date("2021-05-18, 02:35:00").getTime();
var d2 = new Date("2021-05-18, 02:36:00").getTime();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.