Показать сообщение отдельно
  #12 (permalink)  
Старый 08.02.2012, 23:32
Профессор
Отправить личное сообщение для Seva1986 Посмотреть профиль Найти все сообщения от Seva1986
 
Регистрация: 01.10.2011
Сообщений: 422

<!DOCTYPE HTML>
<html lang="ru">
<head>
    <meta charset="UTF-8"/>
    <title>Таймер</title>
    <style>
        #test {
            color: red;
            font-size: 30px;
        }
    </style>
</head>
<body>
<div id="test"></div>

<script>

    function SetDaysTimer(dd, mm, yy, timerElement, message1, message2, timerUpdateTime) {
        function getDaysLeft() {
            var daysLeft = (new Date(yy, mm - 1, dd) - new Date()) / 86400000;

            if (daysLeft > 0) daysLeft = parseInt(daysLeft) + 1;
            return daysLeft;
        }

        function formatDays(daysLeft) {
            var doubleEnding = ('0' + daysLeft).slice(-2);
            var singleEnding = ('0' + daysLeft).slice(-1);

            if ((doubleEnding > 10 && doubleEnding < 20) || singleEnding > 4 || singleEnding == 0) {
                return 'дней';
            } else if (singleEnding == 1) return 'день';
            return 'дня';
        }

        function showMessage(daysLeft) {
            if (daysLeft < 1) {
                timerElement.innerHTML = message2;
                clearInterval(timer);
                return;
            }
            if (daysLeft < 2) {
                timerElement.innerHTML = message1;
                return;
            }
            timerElement.innerHTML = daysLeft + ' ' + formatDays(daysLeft);
        }

        var timer = setInterval(function () {
            showMessage(getDaysLeft())
        }, (timerUpdateTime || 1) * 60000);
        showMessage(getDaysLeft());
    }

    /* Использование
     new SetDaysTimer(
     dd,  - число события
     mm,  - месяц события
     yy,  - год события
     timerElement, - элемент куда выводить сообщение
     message1, - текст сообщения за день до конца
     message2, - текст сообщения в день конца
     timerUpdateTime - время обновления сообщения в минутах, по умолчанию 1 минута
     );

     Пример
     */

    new SetDaysTimer(
            9,
            2,
            2012,
            document.getElementById('test'),
            'Завтра конец света',
            'Конец света наступил',
            5
    );


</script>

</body>
</html>

Последний раз редактировалось Seva1986, 08.02.2012 в 23:34.
Ответить с цитированием