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

HTML+CSS+JavaScript

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

 

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

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

тема: Обратный таймер
 
 автор: peter888   (20.11.2009 в 23:39)   письмо автору
 
 

Я перечитал куча страниц интернета, но так и не смог до конца понять, как сложить такой скрипт:
из БД (через php) в span записывается время (в даном случаи 09:23:59).
<span id="chas">09</span>:<span id="min">23</span>:<span id="sek">59</span>
Надо чтоб это время шло обратно. И когда достигнет 00:00:00 то текущая страничка просто перегрузилась (document.location.reload();).
(Час в мое случаи не будет превышать 10, тоесть 09:23:59 - это максимум).
Но есть еще момент, на странице будет много (например 30) таймеров:
<span id="chas1">09</span>:<span id="min1">23</span>:<span id="sek1">59</span>
<span id="chas2">09</span>:<span id="min2">23</span>:<span id="sek2">59</span>
<span id="chas3">09</span>:<span id="min3">23</span>:<span id="sek3">59</span>
...
<span id="chasN">09</span>:<span id="minN">23</span>:<span id="sekN">59</span>
Надо наверно вызвать функцию N количество раз.
Помогите, плиз.

  Ответить  
 
 автор: sim5   (21.11.2009 в 16:14)   письмо автору
 
   для: peter888   (20.11.2009 в 23:39)
 

Ниче не понятно. У всех записей стартовое время одинаково, зачем тогда столько записей, а тем более много таймеров?

  Ответить  
 
 автор: peter888   (21.11.2009 в 19:08)   письмо автору
 
   для: sim5   (21.11.2009 в 16:14)
 

Да нет, время будет азное, я просто для примера так написал.
Будет таблица, а ней записи и разные таймеры часовые таймеры..

  Ответить  
 
 автор: sim5   (21.11.2009 в 19:14)   письмо автору
 
   для: peter888   (21.11.2009 в 19:08)
 

АЯ почему-то удалил свой пост, где он практическое руководство написал....
Таймер нужен один, а обработчик должен обрабатывать ваши записи временных меток, минусуя их и проверяя на ноль.

  Ответить  
 
 автор: АЯ   (21.11.2009 в 16:50)   письмо автору
 
   для: peter888   (20.11.2009 в 23:39)
 

http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=58956

  Ответить  
 
 автор: peter888   (21.11.2009 в 21:42)   письмо автору
 
   для: peter888   (20.11.2009 в 23:39)
 

я кажись знаю как решить задачу, но сперва надо сделать так, чтоб:
например из БД вытягивается время в <span id="chas1">00</span>:<span id="min1">30</span>:<span id="sek1">00</span> (00:30:00).
Мне надо к текущему времени додать эти 30 минут.
Т.е. например щас 20:40:00, а мне надо в переменную newdate записать текущее время + эти 30 мин. И должно получится 21:10:00

  Ответить  
 
 автор: peter888   (22.11.2009 в 01:13)   письмо автору
 
   для: peter888   (21.11.2009 в 21:42)
 

:( не получаеться додать время к времени... Может кто знает как додать 30 мин

  Ответить  
 
 автор: АЯ   (22.11.2009 в 01:43)   письмо автору
 
   для: peter888   (22.11.2009 в 01:13)
 

Релятивистскую механику я знаю лишь в общих чертах: вам надо пролететь некоторое расстояние со скоростью, близкой к скорости света, и тогда ваше собственное время будет меньше, чем наше (отсчитываемое по покоящимся часам).
А вот какое именно расстояние вам надо пролететь, чтобы "додать" ровно 30 минут, и с какой именно скоростью - точно знали Лоренц и Эйнштейн, но они, увы, уже в лучшем из миров :-(

  Ответить  
 
 автор: peter888   (24.11.2009 в 14:18)   письмо автору
 
   для: peter888   (20.11.2009 в 23:39)
 

Короче вот как я замутил:
<script language="JavaScript" type="text/JavaScript">
<?php
$hhh="0";
$mmm="20";
$sss="03";
$add = ($hhh * 60 + $mmm) * 60+$sss;
$date_plus[0] = date('r', time() + $add);
$date_plus[1] = date('r', time() + $add + $add*2);
$date_plus[2] = date('r', time() + $add + $add*3);
$date_plus[3] = date('r', time() + $add + $add*4);
?>
var arr = [ "<? echo "$date_plus[0]" ?>", "<? echo "$date_plus[1]" ?>", "<? echo "$date_plus[2]" ?>", "<? echo "$date_plus[3]" ?>" ];

function newYearIn(ii)
{
var now = new Date();
var newYear = new Date(arr[ii]);
var totalRemains = (newYear.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
//if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
document.getElementById('chas['+ii+']').innerHTML = RemainsFullHours;
document.getElementById('min['+ii+']').innerHTML = RemainsMinutes;
document.getElementById('sek['+ii+']').innerHTML = lastSec;
setTimeout("newYearIn("+ii+")",1000);
}
else {document.getElementById("chas["+ii+"]").innerHTML = "Время истекло!!!";}
}
//-->

function all_newYearIn() {
newYearIn("0"); newYearIn("1"); newYearIn("2"); newYearIn("3");
}

</script>
</head>

<body onload="all_newYearIn()">
<br>
<span id="chas[0]">09</span>:<span id="min[0]">23</span>:<span id="sek[0]">59</span><br>
<span id="chas[1]">09</span>:<span id="min[1]">23</span>:<span id="sek[1]">59</span><br>
<span id="chas[2]">09</span>:<span id="min[2]">23</span>:<span id="sek[2]">59</span><br>
<span id="chas[3]">09</span>:<span id="min[3]">23</span>:<span id="sek[3]">59</span><br>

  Ответить  
 
 автор: peter888   (28.11.2009 в 16:38)   письмо автору
 
   для: peter888   (24.11.2009 в 14:18)
 

Тему можно закрыть

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

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