За последние 24 часа нас посетили 22918 программистов и 1680 роботов. Сейчас ищут 1057 программистов ...

обратный отсчет

Тема в разделе "JavaScript и AJAX", создана пользователем dimon76, 28 июн 2011.

  1. dimon76

    dimon76 Активный пользователь

    С нами с:
    2 июн 2011
    Сообщения:
    24
    Симпатии:
    0
    всем привет!
    оговорюсь сразу - в javascript не силен.
    есть задача по окончанию обратного отсчета вывести текст или запустить еще один таймер. проблема в следующем когда заканчивается таймер сообщение выводится а потом опять нули выводит :( плюс ко всему таймер не один а 48 с разбежкой в полчаса подскажите что не так пожалуйста.
    [js]

    <script type="text/javascript">
    function countdown_clock(id, year, month, day, hour, minute, format) {
    html_code = '<div id="countdown' + id + '"></div><br>';
    //html_code += '<div id="countdown' + id + '"></div>';
    document.write(html_code);
    countdown(id, year, month, day, hour, minute, format);

    }
    function countdown(id, year, month, day, hour, minute, format) {
    Today = new Date();
    Todays_Year = Today.getFullYear() - 2000;
    Todays_Month = Today.getMonth();
    Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(),
    Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();
    Target_Date = (new Date(year, month - 1, day, hour, minute, 00)).getTime();
    Time_Left = Math.round((Target_Date - Todays_Date) / 1000);
    if(Time_Left < 0)
    Time_Left = 0;

    switch(format) {
    case 0:
    document.all.countdown.innerHTML = Time_Left + ' секунд';
    break;
    case 1:
    days = Math.floor(Time_Left / (60 * 60 * 24));
    Time_Left %= (60 * 60 * 24);
    hours = Math.floor(Time_Left / (60 * 60));
    Time_Left %= (60 * 60);
    minutes = Math.floor(Time_Left / 60);
    Time_Left %= 60;
    seconds = Time_Left;
    dps = ' '; hps = ' '; mps = ' '; sps = ' ';
    if(days == 1) dps ='';
    if(hours == 1) hps ='';
    if(minutes == 1) mps ='';
    if(seconds == 1) sps ='';

    elem = document.getElementById("countdown" + id);
    if(days == 0) elem.innerHTML = '';
    if(days > 0)
    {elem.innerHTML = days + ' день ' + dps + ' ';}
    elem.innerHTML += hours + ':' + hps + '';
    elem.innerHTML += minutes + ':' + mps ;
    elem.innerHTML += seconds + '' + sps;
    break;
    default:
    elem.innerHTML = Time_Left + 'секунд';
    }
    $t = setTimeout('countdown(' + id + ',' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + format + ');', 1000);

    }
    </script>
    </head>
    <body>
    <?

    $min = 51; // увеличиваем на пол-часа каждый последующий
    $year = 11; // год в формате 00
    $month = 06; // месяц
    $day = 28;// день
    $time = 14; // час старта первого
    for($id=0;$id<49;){

    echo "<script type='text/javascript'>countdown_clock($id, $year, $month, $day, $time, $min, 1)</script>";
    $min = $min+30;
    $id++;
    echo "<script type='text/javascript'> if(Time_Left == 0) elem.innerHTML = 'Время кончилось!'; </script>";
    [/js]
     
  2. dimon76

    dimon76 Активный пользователь

    С нами с:
    2 июн 2011
    Сообщения:
    24
    Симпатии:
    0
    все. сам решил