Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Таймер с обратным отсчетом
 
 автор: Denisich84   (10.02.2011 в 07:39)   письмо автору
 
 

как сделать таймер типо табличка например ему вбиваем дату : 2 дня, и он начинает обратный отсчет и чтобы при обновлении страницы он продолжал свой отсчет а не обнулялся. Очень нужно. подскажите с чего начать или где можно скачать? спасибо!

  Ответить  
 
 автор: cheops   (10.02.2011 в 07:45)   письмо автору
 
   для: Denisich84   (10.02.2011 в 07:39)
 

Возможно вас заинтересует тема по ссылке http://softtime.ru/forum/read.php?id_forum=4&id_theme=60856.

  Ответить  
 
 автор: Denisich84   (10.02.2011 в 09:23)   письмо автору
 
   для: cheops   (10.02.2011 в 07:45)
 

нет! мне нужно руками вводить дату отсчета а не так что она уже есть в скрипте.

Что то вроде этого но надо чтобы был : день, час, мин, сек,
и чтобы при повторном заходе на страницу(при обновлении) таймер не сбивался а продолжал отсчет.

<HEAD>

<SCRIPT LANGUAGE="JavaScript">



<!-- Begin
var up,down;var min1,sec1;var cmin1,csec1,cmin2,csec2;
function Minutes(data) {
for(var i=0;i<data.length;i++)
if(data.substring(i,i+1)==":")
break;
return(data.substring(0,i));
}
function Seconds(data) {
for(var i=0;i<data.length;i++)
if(data.substring(i,i+1)==":")
break;
return(data.substring(i+1,data.length));
}
function Display(min,sec) {
var disp;
if(min<=9) disp=" 0";
else disp=" ";
disp+=min+":";
if(sec<=9) disp+="0"+sec;
else disp+=sec;
return(disp);
}
function Up() {
cmin1=0;
csec1=0;
min1=0+Minutes(document.sw.beg1.value);
sec1=0+Seconds(document.sw.beg1.value);
UpRepeat();
}
function UpRepeat() {
csec1++;
if(csec1==60) {
csec1=0; cmin1++;
}
document.sw.disp1.value=Display(cmin1,csec1);
if((cmin1==min1)&&(csec1==sec1))
alert("Stopwatch Остановлены");
else up=setTimeout("UpRepeat()",1000);
}
function Down() {
cmin2=1*Minutes(document.sw.beg2.value);
csec2=0+Seconds(document.sw.beg2.value);
DownRepeat();
}
function DownRepeat() {
csec2--;
if(csec2==-1) {
csec2=59; cmin2--;
}
document.sw.disp2.value=Display(cmin2,csec2);
if((cmin2==0)&&(csec2==0))
alert("Countdown Stopped");
else down=setTimeout("DownRepeat()",1000);
}
// End -->
</SCRIPT>



<BODY>

<CENTER>
<FORM name="sw">
<TABLE border="0" width="100%">
<tr align="center">
<td><table border="3" width="100%"><tr>
<th colspan="2">Остановить</th></tr>

<tr align="center">
<td>Остановить в<br>
<input type="text" name="beg1" size="7" value="0:10"></td>
<td><input type="button" value="Старт" onclick="Up()"></td>
</tr>
<tr align="center"><td colspan="2">
<input type="text" name="disp1" size="7"></td></tr></table></td>
<td>
<input type="button" value="Начать" onclick="Up();Down()">
</td>
<td>
<table border="3" width="100%">
<tr align="center">
<td>Начать в<br><input type="text" name="beg2" size="7" value="0:10"></td> <td><input type="button" value="Старт" onclick="Down()"></td>

</tr>
<tr align="center"><td colspan="2">
<input type="text" name="disp2" size="7"></td></tr></table></td></tr>
</TABLE>
</FORM>
</CENTER>

  Ответить  
 
 автор: ONYX   (10.02.2011 в 09:39)   письмо автору
 
   для: Denisich84   (10.02.2011 в 09:23)
 

При установке даты вбивайте её через поле ввода, и заносите её в кук при каждом обновлении счетчика, при перезагрузке страницы снова считайте её из кукав и продолжайте отсчет

  Ответить  
 
 автор: Абырвалг   (10.02.2011 в 09:56)   письмо автору
 
   для: Denisich84   (10.02.2011 в 09:23)
 

>"мне нужно руками вводить дату отсчета а не так что она уже есть в скрипте.
Что то вроде этого но надо чтобы был : день, час, мин, сек,
и чтобы при повторном заходе на страницу(при обновлении) таймер не сбивался а продолжал отсчет."


Реализовать ЛЕГКО.
Только задача требует уточнения.

1. Зашли Вы первый раз на эту страницу. Увидели там четыре ПУСТЫЕ поля (день, час, мин, сек) и кнопку "Запустить обратный отсчёт"
2. Ввели вы РУКАМИ эти самые день=2, час=2, мин=0, сек=0 и нажали кнопку "запустить".
3. Таймер начал отсчитывать, уменьшая общее введенное время.
ПОКА это всё просто и понятно

4. Зашли именно Вы (не кто-то другой, а Вы, причем с того же компа) на эту же страницу ровно через час. И увидели на таймере день=2, час=1, мин=0, сек=0 (сиречь, на один час общее заданное время уменьшилось). Так?
---> Но тогда есть ВОПРОС: а что с кнопкой "запустить обратный отсчет", её уже показывать не надо?
Или нужна другая кнопка - "остановить отсчёт", по нажатии на которую все поля обнуляются и снова появляется кнопка "запустить обратный отсчет"? Или как-то по-другому?

--->И ещё есть ВОПРОС: а что показать Вам, когда Вы зайдёте на страницу через 3 дня, т.е. когда таймер закончит свой отсчет? Надпись - "Пшёл на фиг, твоё время вышло!" - или что-то другое?

---> Или, может быть, я Вас совсем неправильно понял, и Вам надо, чтобы обратный отсчёт работал только во время нахождения пользователя на странице? Сиречь, установили Вы день=2, час=2, мин=0, сек=0, запустили отсчёт и посидели на странице ровно полчаса - перед уходом со страницы у Вас таймер показывает день=2, час=1, мин=30, сек=0. Зайдете Вы потом через день, через неделю или через месяц - надо, чтобы таймер как бы "ожил" и стал снова считать, начиная с день=2, час=1, мин=30, сек=0?

Вы определитесь.
ТОЧНО и КОНКРЕТНО ответьте на вопросы (где стрелочки) - тогда, видимо, смогу помочь.
-----

PS. Подразумевается, что обратный отсчёт будет работать исключительно для одного пользователя (одного компьютера). Т. е., у всех других пользователей будут либо свои начальные пустые поля для заполнения, либо какой-то свой собственный отчет (если они таймер уже запустили).
Если Вам надо как-то ИНАЧЕ - то сразу посылаю Вас на форум PHP: установка ОБЩЕГО для всех времени - это в принципе СЕРВЕРНАЯ задача, причём надо будет чётко разделить пользователей на "администраторов" (которые смогут "запускать" и "корректировать") и "всех остальных", которые будут только наблюдать за уменьшающимся временем. Javascript тут тоже нужен будет, но - уже только для оформления таймера, а никак не для установки и для поддержания "состояния отсчёта" - это приниципиально иная задача, чем та, которая пока "вырисовывается" из Ваших не очень внятных разъяснений.

  Ответить  
 
 автор: Denisich84   (10.02.2011 в 13:41)   письмо автору
 
   для: Абырвалг   (10.02.2011 в 09:56)
 

4. Зашли именно Вы (не кто-то другой, а Вы, причем с того же компа) на эту же страницу ровно через час. И увидели на таймере день=2, час=1, мин=0, сек=0 (сиречь, на один час общее заданное время уменьшилось). Так?

А можно сделать чтобы с разных компов? Если нет то нет! Ну а так все верно!
Задача.
Есть табличка. Два пользователя Ваня и Петя на одном компе (если можно чтобы зашел с другого компа таймер не сбился для обоих).
- Вот зашел Ваня на страничку перешел по ссылке в таблице на сайт №1, поставил таймер например - 1 день, 0 часов, 0 мин, 0 сек т.е. по истечении этого времени ему надо опять перейти на этот сайт т.е. он просто установил таймер и переодически заходит и смотрит когда таймер обнулится.
- потом ему надо зайти на сайт № 2 и тоже установить свой таймер для этого сайта например - 2 дня, 0 часов, 0 мин, 0 сек. Сайтов может быть много и для каждого свой таймер.
- потом заходит Петя с этого же компа на эту же страницу переходит по тем же сайтам из таблицы и устанавливает уже свои таймеры.
- По истечении времени они просто опять устанавливают таймеры.

пример:

<table border="1" width="52%">
<tr>
<td width="193">
<p align="center">Наименование</td>
<td align="center">Ваня</td>
<td align="center">Петя</td>
</tr>
<tr>
<td width="193">1)<span lang="ru"> сайт &#8470; 1 <a href="http://ya.ru/">ya.ru</a></span></td>
<td align="center">таймер</td>
<td align="center">таймер</td>
</tr>
<tr>
<td width="193"><span lang="ru">2) сайт &#8470;2 <a href="http://ya.ru/">ya.ru</a></span></td>
<td align="center">таймер</td>
<td align="center">таймер</td>
</tr>
</table>


---> Но тогда есть ВОПРОС: а что с кнопкой "запустить обратный отсчет", её уже показывать не надо?
Или нужна другая кнопка - "остановить отсчёт", по нажатии на которую все поля обнуляются и снова появляется кнопка "запустить обратный отсчет"?


кнопку "запустить обратный отсчет", её уже показывать не надо!
Нужна другая кнопка - "остановить отсчёт", по нажатии на которую все поля обнуляются и снова появляется кнопка "запустить обратный отсчет"


--->И ещё есть ВОПРОС: а что показать Вам, когда Вы зайдёте на страницу через 3 дня, т.е. когда таймер закончит свой отсчет? Надпись - "Пшёл на фиг, твоё время вышло!" - или что-то другое?

Можно показать сколько времени прошло с того момента когда счетчик дошел до нуля но другим цветом)

  Ответить  
 
 автор: Абырвалг   (10.02.2011 в 14:22)   письмо автору
 
   для: Denisich84   (10.02.2011 в 13:41)
 

Вас просили КОНКРЕТНО и ТОЧНО ответить на вопросы.

А Вы что сделали?
Стали рассказывать какой-то бред о том, что у Вас на ОДНОМ компе два пользователя...
Про бабку, дедку, Жучку и внучку написать не забыли? :-)

"Правильно поставленный вопрос - половина ответа"(с).

Лично я (и, полагаю, абсолютное большинство прочитавших) - ни фига не поняли: чего же в конце-концов вам надо. То один комп, то один, но много пользователей и тут же - много компов и много пользователей; то одна табличка на страничке, то, теперь, куча страничек (и даже сайтов) - и везде таблички...

Вы родите, наконец, ОДНУ мысль. И про неё - напишите.
А покуда многочисленные Ваши проекции в Вашей голове борются, мы отдохнём, ладно? :-)

Когда мысль родите, опишите свою задачу и дайте почитать это описание кому-нить из домашних.
А потом попросите их объяснить - как именно они представляют то, что Вы хотели этим описанием сделать. Сами увидите, что НИКТО этот бред,кроме Вас, понять не в состоянии. Потому исправьте и дополните своё описание ТАК, чтобы хоть кто-то смог понять.
Честное слово, я постараюсь...

  Ответить  
 
 автор: Denisich84   (10.02.2011 в 14:33)   письмо автору
 
   для: Абырвалг   (10.02.2011 в 14:22)
 

Один пользователь, 2 компа, чтобы с обоих компов смотреть на одну страницу и чтобы таймер не сбивался!!!

вот такая таблица должна быть тока с рабочими таймерами:

<table border="1" width="65%">
<tr>
<td width="193">
<p align="center">Наименование</td>
<td align="center">Ваня</td>
<td align="center">Петя</td>
</tr>
<tr>
<td width="193">1)<span lang="ru"> сайт &#8470; 1 <a href="http://ya.ru/">ya.ru</a></span></td>
<td align="center">
<form method="POST" action="--WEBBOT-SELF--">
<p><input type="text" name="T1" size="14" value="02 д 10:20:05 "><span lang="ru">&nbsp; </span>
<input type="button" value="отсчет" name="B3"></p>
</form>
</td>
<td align="center"><input type="text" name="T3" size="14" value="01 д 16:40:05 "><span lang="ru">&nbsp; </span>
<input type="button" value="отсчет" name="B5"></td>
</tr>
<tr>
<td width="193"><span lang="ru">2) сайт &#8470;2 <a href="http://ya.ru/">ya.ru</a></span></td>
<td align="center"><input type="text" name="T2" size="14" value="03 д 20:30:05 "><span lang="ru">&nbsp; </span>
<input type="button" value="отсчет" name="B4"></td>
<td align="center"><input type="text" name="T4" size="14" value="00 д 01:50:05 "><span lang="ru">&nbsp; </span>
<input type="button" value="отсчет" name="B6"></td>
</tr>
</table>

  Ответить  
 
 автор: Абырвалг   (10.02.2011 в 16:01)   письмо автору
 
   для: Denisich84   (10.02.2011 в 14:33)
 

>"Один пользователь, 2 компа"

Он, этот "один пользователь", теперь у Вас бегает из комнаты в комнату, чтобы с разных компов на одну страницу посмотреть? Физкультурник, что ли?:-)

В общем, так, чтобы Вы больше не мучались:

1. Момент начала отсчёта и его продолжительность необходимо где-то СОХРАНИТЬ.

2. Это можно сделать либо на ОДНОМ КОНКРЕТНОМ КОМПЬЮТЕРЕ (в куках), либо - НА СЕРВЕРЕ (в файле или в базе данных).

3. В первом случае (если сохранить в куках) - значение отсчёта будет доступным лишь ЭТОМУ КОМПЬЮТЕРУ. Кто там за этим компом будет: дядя Фёдор, кот Матроскин или пёс Шарик - неважно. Любой пользователь именно этого компьютера может запускать отсчёт, останавливать его и просто наблюдать, как часики тикают.

4. Во втором случае (если сохранить на сервере) - у ВСЕХ компьютеров мира, с которого зайдут на эту страницу, будет одно и тоже значение отсчёта.

5. Для реализации написанного в п. 4 необходимо использовать серверный язык (PHP, к примеру). И - ОБЯЗАТЕЛЬНО - надо определиться с "правами": какие конкретно люди В МИРЕ могут "устанавливать время", а какие - не могут. С "правами": можно или с помощью логина/пароля. Тогда знающий логин/пароль может с любого компьютера мира зайти и переустановить. Либо можно "права" привязать к конкретному компьютеру (по IP его, например) - тогда только с этого конкретного компа и дедка, и Жучка могут изменить условия.

  Ответить  
 
 автор: denisich84   (11.02.2011 в 05:28)   письмо автору
 
   для: Абырвалг   (10.02.2011 в 16:01)
 

2. Это можно сделать либо на ОДНОМ КОНКРЕТНОМ КОМПЬЮТЕРЕ (в куках)

Сделай для одного компа одного пользователя!!!

  Ответить  
 
 автор: Denisich84   (12.02.2011 в 09:44)   письмо автору
 
   для: denisich84   (11.02.2011 в 05:28)
 

как дело дошло до скрипта сразу затих!

  Ответить  
 
 автор: Абырвалг   (12.02.2011 в 12:06)   письмо автору
 
   для: Denisich84   (12.02.2011 в 09:44)
 

Смотрите http://langmilhist.far.ru/tim.html

[поправлено модератором]

  Ответить  
 
 автор: Denisich84   (12.02.2011 в 12:44)   письмо автору
 
   для: Абырвалг   (12.02.2011 в 12:06)
 

Спасибо!)

  Ответить  
 
 автор: Denisich84   (12.02.2011 в 21:43)   письмо автору
 
   для: Denisich84   (12.02.2011 в 12:44)
 

Это все хорошо) А как сделать несколько таймеров на одной странице? Как то не хочется для каждого таймера переписывать этот скрипт. Нельзя как то скрипт закинуть в отдельный файл и чтобы таймеры обращались к этому скрипту?

  Ответить  
 
 автор: Denisich84   (21.02.2011 в 13:09)   письмо автору
 
   для: Denisich84   (12.02.2011 в 21:43)
 

???

  Ответить  
 
 автор: SHAman   (21.02.2011 в 13:19)   письмо автору
 
   для: Denisich84   (12.02.2011 в 21:43)
 

То что вы тут хотите - это работа программиста. То есть, ваша. Если вы не можете ее сделать и расчитываете что вашими руками ее сделают местные программисты, то вы ошибаетесь. Очень редко программисты любят делать что-то чужими руками да еще бесплатно.

Закажите нужный вам скрипт у профессионала, отдайте немного денег и все будет в более короткие сроки и в нужном вам виде и без нервотрепки.

Сейчас же очевидно что вы не понимаете ничего из того, что должен понимать программист, решая подобную задачу. И учиться не хотите. А хотите готовое решение. Готового типового решения, на которое можно дать ссылку нет. Поэтому готовое решение должно изготавливаться. Специально для вас. А это стоит денег.

  Ответить  
 
 автор: Denisich84   (21.02.2011 в 13:44)   письмо автору
 
   для: SHAman   (21.02.2011 в 13:19)
 

не много это сколько?

  Ответить  
 
 автор: SHAman   (21.02.2011 в 13:55)   письмо автору
 
   для: Denisich84   (21.02.2011 в 13:44)
 

Зависит от того, кто будет вам это делать, разумеется. Софттайм, к примеру - вебстудия. Думаю, если вы напишете им и спросите сколько будет стоить выполнение работ по задаче, описанной здесь, они вам скажут.

В зависимости от загрузки, квалификации и прочих условий цена может варьироваться довольно сильно. Но всяко это будет дешевле и проще, чем мурыжить задачку на форуме.

Вы сами видите что интерес к этой теме угас. Знаете почему? Потому что нет четкого технического вопроса. Люди тут сами выдумывали себе вопросы и сами на них отвечали. Но это вам не подходит, потому что вам ничего не даст технический ответ. Вам нужен ответ "это вставить сюда, здесь написать это и вуаля". То есть, руководство по установке уже готового решения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования