2012-03-19 4 views
0

그물 주변의 코드 조각에서이 작은 기능을 만들었습니다. 그것은 그것이 원래의 시간으로 다시 되돌아가는 페이지를 새로 고치면, 1 초가 아닌 2 초마다 카운트 다운 틱이 감소한다는 것을 제외하고는 예상했던대로 동작합니다. 문제가 무엇인지 보시겠습니까?jquery date difference trouble

   jQuery.countdown = function(selector, datevalue) { 

       var amount = datevalue*1000; 

       var curdate = new Date(); 
       curdate  = curdate.getTime(); 

       var difference = amount - curdate; 


       if(amount < 0 || curdate >= amount){ 
        $(selector).html("Done"); 
       } 


       else{ 
        datevalue--; 

        var daysRemaining = Math.floor(difference/1000/60/60/24); 
        var hoursRemaining = Math.floor(difference/1000/60/60 - (24 * daysRemaining)); 
        var minutesRemaining = Math.floor(difference/1000/60 - (24 * 60 * daysRemaining) - (60 * hoursRemaining)); 
        var secondsRemaining = Math.floor(difference/1000 - (24 * 60 * 60 * daysRemaining) - (60 * 60 * hoursRemaining) - (60 * minutesRemaining)); 

        $(selector).html(daysRemaining+':'+hoursRemaining+':'+minutesRemaining+':'+secondsRemaining); 
        setTimeout(function() { 
         $.countdown(selector, datevalue); 
        }, 1000); 
       } 
}; 




$.countdown('.date', 1332239568); 

답변

1

제거는 datevalue--;

당신이 지금하고있는 것은 아래로 특정 시대 시간 datevalue을 계산하는 것입니다. 그러나 틱마다 1 초씩 줄입니다. 한편, 현재 시간은 setTimeout에 전달되므로 앞으로 시간을 이동하고 목표물을 자신에게 가져갈 수 있습니다.

원래 전화 curdate을 보관하십시오. 어딘가에 저장하십시오. 또는 datevalue--;을 삭제하십시오.

+0

가장 눈에 띄는 점은 내가 그것을 감독 한 이유를 찾을 수 없습니다. Ekin 감사합니다 :) –