2014-02-13 3 views
0

내에서 실행되고 있지 문은 내가 날짜와 시간을 확인하기 위해 노력하고있어다음은 setInterval을

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

checkTime을하지 않아도 되겠습니까? setInterval (checkTime, 1000)을 다시 호출 하시겠습니까? – Dalorzo

+0

@Dalorzo 아니요, 안됩니다. –

+0

@jCuber 정말 잘못되었습니다! – epascarello

답변

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 방법에있을 수 있습니다.

+0

Duh, 고맙습니다, 그걸 잡았어야했는데, 긴 하루였습니다. – Jordan