Таймер обратного отсчета до события
: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, время: 11:46. |