2014-04-02 2 views
0

일별 자료에서 특정 시간 (hh : mm : ss)까지 카운트 다운하는 카운트 다운을 만들었습니다 (오후 7시 또는 19시 00 분). 오후 7 시가 지나면 카운트 다운은 23시 59 분 59 초로 재설정되어야하지만 대신에 이전 시간 세트에서 경과 한 시간 (-00 -00 -01)을 세고 있습니다.카운트 다운이 정상적으로 재설정되지 않음

타이머가 지나면 다음 24 시간으로 재설정되도록 타이머를 만들 수 있습니까?

DEMO : http://jsfiddle.net/p3f2X/은 (과거 하루의 시간으로 시간을 설정하려고 - 다음, 시간대에 예를 들어 오후 4시 오류를보고 오후 3시로 설정) 진짜 문제는 여기에 무엇

function ShowTime() { 
    var now = new Date(); 
    var hrs = 18-now.getHours(); 
    var mins = 60-now.getMinutes(); 
    var secs = 60-now.getSeconds(); 
     timeLeft = "" +hrs+' hours '+mins+' minutes '+secs+' seconds'; 
    $("#countdown").html(timeLeft); 
} 

setInterval(ShowTime ,1000); 
+0

당신은 단순히 카운트 다운 시간을 초 단위로 계산하려면 하루에 초 수와 함께 계수, 다음에 대한 비슷한 일을 할 것입니다 남은 시간과 분. 부품을 얻는 데 '날짜'를 사용하면 문제가 혼란 스럽습니다. –

답변

1

시간, 분 또는 초 변수가 음수가되지 않도록하려면 다음을 수행하십시오.

이 코드를 사용하면 숫자를 19, 0 및 0으로 변경할 수도 있습니다 더 명확하게 표시하고 60 seconds을 표시하지 못하게합니다. 여기

var hours=19-now.getHours()-1; 
if(hours<0)hours+=24; 
var minutes=0-now.getMinutes()-1; 
if(minutes<0)minutes+=60; 
var seconds=0-now.getSeconds(); 
if(seconds<0)seconds+=60; 

는이 Demo

+0

@TrueBlueAussie 질문은 최대 하루 정도입니다. –

+0

사실, 한 번 전달 된 다음 24 시간까지 매일 새로 고쳐야합니다. (24 시간 내에 따라 달라질 링크가 있습니다). – user1901096

+0

@TrueBlueAussie 이것은 여러 날 동안 작동 할 것입니다. 19 시가되면 시계가 24 시부 터 시작됩니다. –

0
function ShowTime() { 
    var now = new Date(); 
    var hrs;  
    var mins = 59-now.getMinutes(); 
    var secs = 59-now.getSeconds(); 
    if(now.getHours()>18) 
     hrs=24+18-now.getHours(); 
     else 
     hrs= 18-now.getHours(); 
     timeLeft = "" +hrs+' hours '+mins+' minutes '+secs+' seconds'; 
    $("#countdown").html(timeLeft); 
    console.log(now.getHours()); 
} 
setInterval(ShowTime ,1000); 
관련 문제