基于时间 javascript,创建大约 30 分钟的空白响应

Time based javascript, creating a blank response for approx 30 minutes

首先 - 提前感谢您的帮助。 我有一个基于图像的幻灯片放映,调用 #photo1、2、3。使用 javascript 根据不同的时间更改图像(实际上是图像文件夹,所有图像都具有相同的名称,所以只需更改根文件夹)全天阻塞。 (上午 9 点至上午 11 点、上午 11 点至下午 3 点、下午 3 点至 6 点、下午 6 点至上午 9 点)。以防万一,我将图像存储在保管箱中(这样我的伙伴可以随意更改它们,提供的链接是旧的,目前无法使用)。 这一切似乎都在工作,在更改时间后的前 30 分钟左右接受,它变成空白。然后再次正常工作。 想法?我对 javascript 不是很好,所以如果我做错了,我愿意接受新方法。

Javascript代码:

$(document).ready(function(){

var d = new Date();
var n = d.getHours();

  // If time is after 9AM or before 11AM
if (n > 9 && n < 11) {
$("img#photo1").attr("src","https://dl.dropboxusercontent.com/s/324....67l/ad1.jpg?dl=0");
$("img#photo2").attr("src","https://dl.dropboxusercontent.com/s/5i9f....m10z/ad2.jpg?dl=0");
$("img#photo3").attr("src","https://dl.dropboxusercontent.com/s/n7....66/ad3.jpg?dl=0");
}

else if (n > 11 && n < 15) {
 $("img#photo1").attr("src","https://dl.dropboxusercontent.com/s/31p....rw3r/ad1.jpg?dl=0");
 $("img#photo2").attr("src","https://dl.dropboxusercontent.com/s/h3m....tsqy/ad2.jpg?dl=0");
 $("img#photo3").attr("src","https://dl.dropboxusercontent.com/s/zr9....kzja/ad3.jpg?dl=0");
 }

else if (n > 15 && n < 18) {
 $("img#photo1").attr("src","https://dl.dropboxusercontent.com/s/5li....y2w/ad1.jpg?dl=0");
 $("img#photo2").attr("src","https://dl.dropboxusercontent.com/s/no....twr2/ad2.jpg?dl=0");
 $("img#photo3").attr("src","https://dl.dropboxusercontent.com/s/ojjn....i1g/ad3.jpg?dl=0");
 }

else if (n > 18 || n < 9) {
 $("img#photo1").attr("src","https://dl.dropboxusercontent.com/s/kn3ch....s7g0/ad1.jpg?dl=0");
 $("img#photo2").attr("src","https://dl.dropboxusercontent.com/s/dhxi5....04/ad2.jpg?dl=0");
 $("img#photo3").attr("src","https://dl.dropboxusercontent.com/s/mb51....336/ad3.jpg?dl=0");
 }

// runs the code every hour, probably there is a much better way to do this 
setTimeout(function(){window.location.reload();}, 3600000)

});

当9点、11点、15点或18点时,您的none个条件会匹配,不会显示任何内容。将条件更改为:

if (n >= 9 && n < 11) {
  // ...
}
else if (n >= 11 && n < 15) {
  // ...
}
else if (n >= 15 && n < 18) {
  // ...
}
else if (n >= 18 || n < 9) {
  // ...
}

您排除了 9、11、15 和 18; if 语句选择大于或小于。对于这些数字中的任何一个,您都会得到 undefined。