JavaScript日期计算显示/隐藏带有日期或逻辑的Div问题?
我正在尝试使用Javascript在特定日期之间显示div。有三个分区。我不知道我的逻辑中是有错误还是代码中有错误。顺便说一下,我正在自学JavaScript,所以我对预先打包的脚本不感兴趣。提前感谢您的建议 JavaScript: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
<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();
}