Таймер обратного отсчета до события
:help: Приветствую , помогите пожалуйста составить скрипт самого обычного таймера обратного отсчета например До события осталось: 1 дней 2 часов 30 минут 50 секунд , и еще если возможно сделать чтобы таймер работал без разницы в часовых поясах . Спасибо:help:
|
100500 готовых плагинов есть.
|
Цитата:
|
|
Цитата:
|
Всегда можно погуглить получше, вот тут более продвинутый генератор:
http://megatimer.ru/ Работоспособность правда проверять лень) Про "подключить таймер к серверному времени" - это насколько я понимаю просто один раз спросить у сервера сколько по его мнению осталось в миллисекундах до этой даты, вернуть эти миллисекунды на клиент, там их перевести в дни-часы-минуты-секунды и показать их. Сложности в чем? |
Таймер до даты в нужной таймзоне
:cray: порядковый номер будет 200 :lol:
нормальный вариант для такого случая описан в посте выше. <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .number{ background-color: #c3cddc; color: #4f5865; font-weight: bold; padding: 1px 2px; } </style> </head> <body> <div id = 'show'></div> <script type="text/javascript"> function two(a) { return (9 < a ? "" : "0") + a } function formatTime(a) { a = Math.floor(a / 1E3); var b = Math.floor(a / 60), c = Math.floor(b / 60), d = c / 24 | 0, c = c % 24; a %= 60; b %= 60; return "<span class='number'>" + d + "</span> " + days(d) + " <span class='number'>" + two(c) + "</span> " + hours(c) + " <span class='number'>" + two(b) + "</span> " + minutes(b) + " <span class='number'>" + two(a) + "</span> " + seconds(a) }; // функция для склонения слов ( (1)"день", (2)"дня", (5)"дней") function plural(str1,str2,str5){ return function ( n ) {return ((((n%10)==1)&&((n%100)!=11))?(str1):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(str2):(str5)))} } var days = plural('день', 'дня', 'дней'), hours = plural('час', 'часа', 'часов'), minutes = plural('минута', 'минуты', 'минут'), seconds = plural('секунда', 'секунды', 'секунд'); function Time() { var a = new Date, b = new Date(2015, 4, 1, 0, 0, 0), d = "1 мая в Калининграде", m = -120 - a.getTimezoneOffset(); // -120 нужная таймзона в минутах b.setMinutes(m,0,0); a = b.getTime() - a.getTime(); if(a > 0) {document.getElementById("show").innerHTML = "До " + d + " осталось: " + formatTime(a); window.setTimeout(Time, 1E3)} else { document.getElementById("show").innerHTML = "!!!" } }; Time() </script> </body> </html> |
Цитата:
сложности в написании кода))) |
Цитата:
|
Да, еще надо не забыть учесть поправку на время ожидания ответа от сервера...
В общем если от сервера получать то главный вопрос встает, что это за сервер? 1. Свой 2. Не свой но какой-то конкретный и есть протокол общения с ним 3. Апофиг, любой который вернет время |
Цитата:
|
рони,
дискриминация получается, если счет начинать с текущего времени клиента. :) |
laimas,
в каком то городе по местному времени должно произойти событие, скрипт учитывает разницу в часовых поясах, но для любых часовых поясов, событие наступит одновременно. |
Все правильно, но время старта таймера должен задавать сервер по своему времени. )
|
Цитата:
Цитата:
http://javascript.ru/forum/dom-windo...n-tajjmer.html Цитата:
|
рони, хорошо, теперь я знаю какая у меня очередь, счетчик уже включен :)
|
Цитата:
|
boypush,
строка 47 b = new Date(2015, 4, 1, 0, 0, 0), год , месяц , день --- 1 мая 2015 года http://javascript.ru/Date |
Часовой пояс GMT +3, время: 16:27. |