2015-05-17 3 views
0
var now = new Date().getTime(); 
var remainingSeconds = (new Date(new Date(new Date(now + 3600000).setMinutes(1)).setSeconds(0)) - now)/1000; 
console.log(remainingSeconds); 
if (remainingSeconds>=120) { 
    $('#countdown').text('120'); 
}else{ 
    $('#countdown').text(remainingSeconds); 
} 

Я использую этот код для подсчета количества секунд между текущей и первой минутой следующего часа. Дело в том, что текст div не меняется, если оставшиеся секунды меньше 120 секунд. Скрипт в документе готов, потому что я проверяю его только на загрузке страницы. Для этого я создал fiddle.Текст div не обновляется по javascript-адресу

+0

Код работает над моим браузером. Вы что-то пропустили? –

ответ

2

Проблема в том, что remainingSeconds никогда не становится ниже 60 в вашем коде. Вот обновленная версия, которая включает обходное решение/решение.

$(document).ready(function(){ 
    var now = new Date().getTime(); 
    var remainingSeconds = (new Date(new Date(new Date(now + 3600000).setMinutes(1)).setSeconds(0)) - now)/1000; 
    // --- Workaround-Begin --- 
    if (remainingSeconds >= 3600) { 
     remainingSeconds -= 3600; 
    } 
    // --- Workaround-End --- 
    console.log(remainingSeconds); 
    if (remainingSeconds>=120) { 
     $('#countdown').text('120'); 
    }else{ 
     $('#countdown').text(remainingSeconds); 
    } 
}); 
+0

Почему вы проверяете, что это> = 3600? это в секундах. Или я что-то упускаю? –

+2

, потому что вы пытаетесь оценить оставшиеся секунды до первой минуты следующего часа (например: _08: 01: 00_, формат: 'hh: mm: ss'). И если текущее время составляет _08: 00: 20_, мы получим оставшиеся секунды до следующего часа (_09: 01: 00_). поэтому мы вычитаем час от нашего результата, если он больше одного часа. – Jan

+0

Я вижу! Спасибо, не заметила ошибку! Спасибо, что указали! –

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