|
|
|
| Здравствуйте !
Нужен счетчик отсчета времени, помогите кто может..
Проблема следующая, просто счетчик на Java Script есть, и написать его не сложно, НО, при обновлении страницы, счетчик Естественно сбрасывается в начальное значание, КАК сделать так, что бы он не сбрасывался, а продолжал отсчет дальше, Есть варианты, и сам писал и в инете искал, сохранять в кукисах значение счетчика и отсчитывать оттуда.. НО при удалении кукисов, счетчик опять начинается сначала.. Нужен счетчик типа как сделано в таких браузерных играх как БК, Грани реальности и т.д. там отсчет времени идет и что бы ты не делал он продолжает отсчитывать секунды с минутами.. Облазил ОЧ много форумов и страниц в инете ничего ненашел...
предлагаю начать от исходного т.е. Скажем при определенном действии происходит 1) Берется текущее время (минуты секунды) прибовляем к ним то время насколько нам нужно запустить счетчик 2) записывается все это в БД... Потом берем все это отсчитываем минуты и секунды простым циклом сколько осталось до конца минут и секунд и запускаем простой Ява счетчик, он нужен просто для наглядности, соответственно когда страница обновляется РНР расчитывает оставшееся время и ЯВА отсчитывает его дальше, работает примерно так как я написал ниже, правда это БЕТА версия ) еще додумывать и дорабатывать надо.. ОЧ криво работает но что то такое должно получится в итоге. ! Мож кто быстрее сообразит
Заранее спасибо !
<?
$min_stop=42; // Берем из БД
$sec_stop=25; // Берем из БД
$min_now=date(i);
$sec_now=date(s);
for($i=0;$i<=2;$i++)
{
$min_now+=1;
if($min_now>=60){$min_now=0;}
if($min_now==$min_stop){$min=$i;}
}
for($i=1;$i<=60;$i++)
{
$sec_now+=1;
if($sec_now>=60){$sec_now=0;}
if($sec_now==$sec_stop){$sec=$i;}
}
?>
<script>
var time = 1000;
var seconds =<?=$sec?>;
var minuties =<?=$min?>;
var sec;
var min;
function a()
{
seconds -= 1;
if(seconds.toString().length == 1) sec = "0"+seconds;
else sec = seconds;
if(minuties.toString().length == 1) min = "0"+minuties;
else min = minuties;
document.getElementById('w').innerHTML="<b>End of time "+min+":"+sec+"</b>";
if(seconds==0)
{
seconds = 60;
if(minuties == 0)
{
window.clearInterval(timer);
document.addmt.submit();
}
minuties -= 1;
}
}
</script>
<div id="w"><script>timer=setInterval('a()', 1000);</script></div> | |
|
|
|
|
|
|
|
для: Fighter
(02.02.2008 в 17:36)
| | Берите из php линейную абсолютную метку времени планируемого события (mktime()) и передавайте её на клиентскую сторону - в JavaScript.
Все арифметические действия (тики, определение оставшегося интервала и пр.) вычисляйте в линейных единицах (секундах либо миллисекундах). Перед выводом - преобразуйте линейное время в человеческое представление ЧЧ:ММ:СС | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2008 в 18:01)
| | Спасибо все сделал ! :) | |
|
|
|