Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Обратный отсчет времени


Автор: gvozd 28.2.2008, 20:57
Здравствуйте. Столкнулся с проблемой: есть слой, с содержимым "00:10:00", нужно убавлять ежесекундно время, и чтобы оно уходило в минус. Подскажите, пожалуйста, как это сделать.

Автор: Itsys 28.2.2008, 22:10
Вообще принято сначала смотреть ссылки, которые показываются при вводе темы, а затем задавать вопрос... Смотри http://forum.vingrad.ru/topic-73877.html
 smile 

Автор: gvozd 29.2.2008, 09:48
Это не то, что мне нужно. Мне нужно именно перевести строку во время и вычесть из него секунду.

Автор: bars80080 29.2.2008, 10:09
не совсем понятно в чём проблема

вот к примеру есть слой:
Код

<div id="oclock">до момента х : <span id="clock"></span> &nbsp;сек.</div>
<script>
var tm;
function tims() {
    if(!tm) tm = 300;
    tm--;
    clock.innerText = tm;
    if(tm == 0) timsgo();
    window.setTimeout('tims()', 1000); }
</script>

где происходит отсчёт от трёхсот секунд до нуля и затем вызов функции timsgo() /если нужно/

что сложного переправить число 300 в вид 00:05:00, а 299 в 00:04:59
и оставить минус если нужно

Автор: Nigel 29.2.2008, 10:16
bars80080, у автора, насколько я понял, изначально строка 00:10:00.

gvozd, вот посмотри http://codeguru.ru/web/javascript/%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F/%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0-JavaScript/%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B-%D1%8F%D0%B4%D1%80%D0%B0/%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-Date.html

Автор: bars80080 29.2.2008, 10:30
тогда так:
Код

var tm;
function tims() {
    if(!tm && tm != 0) tm = 600;
    tm--;
    if(tm > 0) { tm1 = Math.floor(tm/60) + ''; tm2 = tm%60 + ''; zn = ''; }
    else if(tm < 0) { tm1 = Math.ceil(tm/60) + ''; tm2 = tm%60 + ''; tm2 = tm2.replace('-', ''); zn = '-'; }
    if(tm2.length < 2) tm2 = '0' + tm2;
    if(tm1.length < 2) tm1 = '0' + tm1;
    clock.innerText = zn + '00:' + tm1 + ':' + tm2;
    if(tm == -100) timsgo();
    window.setTimeout('tims()', 1000); }

Автор: ksnk 29.2.2008, 12:40
imho, использовать объект Date немного более правильно... Мало ли броузер на какой-нибудь важный скрипт отвлечется - время пролетит...
Код

<div id="clock">xxx</div>
<script>
function tim(id,tm){
    var ts=new Date() ; ts=ts.getTime()+tm;
    function xx (){
        var tc=new Date(); tc.setTime(Math.abs(tc.getTime()-ts)); 
        document.getElementById(id).innerHTML=tc.toGMTString().match(/..\:..\:../);
    }
    xx();
    setInterval(xx,300);
}

tim('clock',600000  /* это 10 минут */);
</script>

Правда откуда брать минус - разбирайтесь сами smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)