2014-02-04 6 views
0

Я запрограммировал этот обратный отсчет, когда вы определяете время без даты, и это здорово, но есть проблема, если я хочу, чтобы счетчик закончился после полуночи, скажем, в 1 утра я не могу, я не могу, потому что это время уже прошло. Кто-нибудь знает, как это исправить? Это создает проблемы только около полуночи, когда она должна перейти на другой день (дата), я использую 24-часовой формат в коде.Обратный отсчет Javascript, определенный часами

<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
</head> 
<body> 
<script> 
var timer; 
function cdtd() { 
    var now = new Date(); 
    var dolazak = new Date(now.getFullYear(),now.getMonth(),now.getDate(),23,00,00); 
    var timeDiff = dolazak.getTime() - now.getTime(); 
    if (timeDiff <= 0) { 
     clearInterval(timer); 
       document.getElementById(id).innerHTML = ''; 
    } 
    if(minutes < 2){document.getElementById(id).style.color="#ff0000";}; 
    var seconds = Math.floor(timeDiff/1000); 
    var minutes = Math.floor(seconds/60); 
    var hours = Math.floor(minutes/60); 
    var days = Math.floor(hours/24); 
    hours %= 24; 
    minutes %= 60; 
    seconds %= 60; 
    $("#daysBox").html(days); 
    $("#hoursBox").html(hours); 
    $("#minsBox").html(minutes); 
    $("#secsBox").html(seconds); 

    timer = setTimeout(cdtd, 1000); 
} 

$(document).ready(function() { 
    cdtd(); 
}); 
</script> 

<style> 
#daysBox{font-size:70px; 
     color:#1f62a7; 
     font-family:Sans-serif; 
} 

#hoursBox{font-size:70px; 
     color:#1f62a7; 
     font-family:Sans-serif; 
} 


#minsBox{font-size:70px; 
     color:#1f62a7; 
     font-family:Sans-serif; 
} 



#secsBox{font-size:70px; 
     color:#1f62a7; 
     font-family:Sans-serif; 
} 

</style> 


    <div id="daysBox"></div> 

    <div id="hoursBox"></div> 

    <div id="minsBox"></div> 

    <div id="secsBox"></div> 
</body> 
+1

Если вы хотите пройти полночь, это не будет другой день? Поэтому, если вы суммируете +1 на день в день 'dolazak', это может сработать, потому что это время больше не будет прошло. Или я говорю о быке ***? – DontVoteMeDown

ответ

0

@DontVoteMeDown является правильным.

Если вы хотите, чтобы сделать 1 утро следующего утра, просто сделать это:

var dolazak = new Date(now.getFullYear(),now.getMonth(),now.getDate()+1,1,00,00); 

now.getDate()+1 делает dolazak на следующий день, так ...1,00,00); устанавливает переменный как 1:00 утра следующего дня.

Смежные вопросы