Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Несколько таймеров на одной странице (https://javascript.ru/forum/events/60364-neskolko-tajjmerov-na-odnojj-stranice.html)

diversia 24.12.2015 16:29

Несколько таймеров на одной странице
 
Здравствуйте.

Есть код таймера CountDowndmn:
var montharray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
//var charset = document.charset || document.characterSet;

var eventstr = "";
var upstr = "осталось ";

function CountDowndmn(h, a, s, d, m, b, id) {
    countdownid = document.getElementById(id);
    cdyear = b;
    cdmonth = m;
    cdday = d;
    cdhour = h;
    cdminute = a;
    cdsecond = s;
    var c = new Date();
    var e = c.getYear();
    if (e < 1000) e += 1900;
    var f = c.getMonth();
    var g = c.getDate();
    var i = c.getHours();
    var j = c.getMinutes();
    var k = c.getSeconds();
    var l = montharray[f] + " " + g + ", " + e + " " + i + ":" + j + ":" + k;
    futurestring = montharray[m - 1] + " " + d + ", " + b + " " + h + ":" + a + ":" + s;
    dd = Date.parse(futurestring) - Date.parse(l);
    dday = Math.floor(dd / (60 * 60 * 1000 * 24) * 1);
    dhour = Math.floor((dd % (60 * 60 * 1000 * 24)) / (60 * 60 * 1000) * 1);
    dmin = Math.floor(((dd % (60 * 60 * 1000 * 24)) % (60 * 60 * 1000)) / (60 * 1000) * 1);
    dsec = Math.floor((((dd % (60 * 60 * 1000 * 24)) % (60 * 60 * 1000)) % (60 * 1000)) / 1000 * 1);
    if (dday <= 0 && dhour <= 0 && dmin <= 0 && dsec <= 1) {
        countdownid.innerHTML = eventstr;
        return
    } else {
        var n = "" + dsec;
        var o = n.substring(n.length - 2, n.length - 1);
        n = n.substring(n.length - 1, n.length);
        var p = "секунд";
        if (n == "1" && !(o == "1")) {
            p = "секунда"
        }
        if (((n == "2") || (n == "3") || (n == "4")) && !(o == "1")) {
            p = "секунды"
        }
        n = "" + dmin;
        o = n.substring(n.length - 2, n.length - 1);
        n = n.substring(n.length - 1, n.length);
        var q = "минут";
        if (n == "1" && !(o == "1")) {
            q = "минута"
        }
        if (((n == "2") || (n == "3") || (n == "4")) && !(o == "1")) {
            q = "минуты"
        }
        n = "" + dhour;
        o = n.substring(n.length - 2, n.length - 1);
        n = n.substring(n.length - 1, n.length);
        var r = "часов";
        if (n == "1" && !(o == "1")) {
            r = "час"
        }
        if (((n == "2") || (n == "3") || (n == "4")) && !(o == "1")) {
            r = "часа"
        }
        n = "" + dday;
        o = n.substring(n.length - 2, n.length - 1);
        n = n.substring(n.length - 1, n.length);
        var t = "дней";
        if (n == "1" && !(o == "1")) {
            t = "день"
        }
        if (((n == "2") || (n == "3") || (n == "4")) && !(o == "1")) {
            t = "дня"
        }
        var u = "";

        countdownid.innerHTML = "";
        countdownid.innerHTML += upstr + " ";
        if (dday > 0) countdownid.innerHTML += dday + " " + t + " ";
        if (dhour > 0) countdownid.innerHTML += dhour + " " + r + " ";
        if (dmin > 0) countdownid.innerHTML += dmin + " " + q + " ";
        if (dsec > 0) countdownid.innerHTML += dsec + " " + p + " ";
        if (u > 0) countdownid.innerHTML += u;

    }
	setTimeout(function(){CountDowndmn(cdhour,cdminute,cdsecond,cdday,cdmonth,cdyear,id)}, 1000);
}

Вызов:
<script src="countdownOrder2.js"></script>

<div align="center" id="countdown1"></div>
<div align="center" id="countdown2"></div>

<script type="text/javascript">
CountDowndmn(17,00,00,24,12,2015,"countdown1");
CountDowndmn(17,00,00,26,12,2015,"countdown2");
</script>


На странице появляется:
осталось 32 минуты 54 секунды
осталось 2 дня 32 минуты 54 секунды
Через секунду:
осталось 2 дня 32 минуты 53 секунд
осталось 2 дня 32 минуты 53 секунд

Не могу разобраться как исправить. Помогите пожалуйста!

Rise 24.12.2015 17:16

Цитата:

Сообщение от diversia (Сообщение 401249)
осталось 2 дня 32 минуты 53 секунд

А часы где?)


Часовой пояс GMT +3, время: 16:00.