以下是我正在使用的代码
var d = new Date(), // New Date object
M = d.getMonth(), // Month
D = d.getDate(), // Day of the month
h = d.getUTCHours(), // Hours in 24 hour time
m = d.getUTCMinutes(); // Minutes
console.log(M+'/'+D+' '+h+':'+m);
var href = location.href;
if(M == 1 && D == 13 && h >= 21 && m >= 17){
// It is time so lets just go there
window.location = href+'live';
}else{
// It isn't already time so lets check every 30 seconds
setInterval(checkTime, 1000)
}
function checkTime() {
if(M == 1 && D == 13 && h >= 21 && m >= 17){
// It is time so lets just go there
window.location = href+'live';
}
console.log('checked time');
}
我正在尝试检查日期和时间,如果它是正确的日期和时间,转发到另一个页面,如果不是,则每隔几秒检查一次(现在每1秒检查一次,但我可能会碰到这个最多15或30)并再次检查,如果现在是正确的日期和时间,则转到新页面。
第一个if语句有效,但它似乎没有在set interval函数内运行if语句。
也许我只是不明白setInterval是如何工作的,但我看不出代码有问题。
答案 0 :(得分:2)
因为您没有更新变量,所以值永远不会改变。
您需要每次都进行日期对象检查。他们没有更新。
以下
d = new Date(), // New Date object
M = d.getMonth(), // Month
D = d.getDate(), // Day of the month
h = d.getUTCHours(), // Hours in 24 hour time
m = d.getUTCMinutes(); // Minutes
需要在checkTime方法中。