Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2011, 02:29
Новичок на форуме
Отправить личное сообщение для Freedman Посмотреть профиль Найти все сообщения от Freedman
 
Регистрация: 08.06.2011
Сообщений: 2

Как привести в движение таймер
Здравствуйте! Вот код таймера, который запускается любым пользователем сайта. Отсчет времени ведется от момента запуска до бесконечности - в секундах, минутах, часах, днях, месяцах и годах. Писал не сам. Таймер работает, это видно при обновлении страницы. Подскажите, пожалуйста, что нужно для того, чтобы привести этот таймер в движение, т.е чтобы шли (визуально) секунды, минуты и т.д. Вот код запущенного таймера:


weeks = Math.floor (timediff / (1000 * 60 * 60 * 24 * 7));
//timediff -= weeks * (1000 * 60 * 60 * 24 * 7);

days = Math.floor(timediff / (1000 * 60 * 60 * 24));
timediff -= days * (1000 * 60 * 60 * 24);

hours = Math.floor(timediff / (1000 * 60 * 60));
timediff -= hours * (1000 * 60 * 60);

minutes = Math.floor(timediff / (1000 * 60));
timediff -= minutes * (1000 * 60);

seconds = Math.floor(timediff / 1000);
timediff -= seconds * 1000;

Последний раз редактировалось Freedman, 22.06.2011 в 20:18.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2011, 10:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Freedman
Подскажите, пожалуйста, что нужно для того, чтобы привести этот таймер в движение
Как вариант...

<div id="clock" style="font-size: 42px;"></div>
<a href="?act=logout">Выход</a> / <a href="?act=reset" id='reset'>Обнулить</a>
<script type="text/javascript">
date2 = new Date ();
function clock_update () {
	date1 = new Date ();
	diff = new Date();

	diff.setTime (date1.getTime() - date2.getTime ());

	timediff = diff.getTime();

	years = Math.floor (timediff / (1000 * 60 * 60 * 24 * 365));
	timediff -= years * (1000 * 60 * 60 * 24 * 365);

	months = Math.floor (timediff / (1000 * 60 * 60 * 24 * 30));
	timediff -= months * (1000 * 60 * 60 * 24 * 30);

	weeks = Math.floor (timediff / (1000 * 60 * 60 * 24 * 7));
	//timediff -= weeks * (1000 * 60 * 60 * 24 * 7);

	days = Math.floor(timediff / (1000 * 60 * 60 * 24));
	timediff -= days * (1000 * 60 * 60 * 24);

	hours = Math.floor(timediff / (1000 * 60 * 60)); 
	timediff -= hours * (1000 * 60 * 60);

	minutes = Math.floor(timediff / (1000 * 60)); 
	timediff -= minutes * (1000 * 60);

	seconds = Math.floor(timediff / 1000);
	timediff -= seconds * 1000;

	if (hours < 10) hours = '0' + hours;
	if (minutes < 10) minutes = '0' + minutes;
	if (seconds < 10) seconds = '0' + seconds;

	document.getElementById ('clock').innerHTML = '';

	if (years>0) document.getElementById ('clock').innerHTML += years + 'г. ';
	if (months>0) document.getElementById ('clock').innerHTML += months + ' м. ';
	if (days>0) document.getElementById ('clock').innerHTML += days + ' д.<br>';

	document.getElementById ('clock').innerHTML += hours + ':' + minutes + ':' + seconds + '';
	document.getElementById ('reset').href = '?act=reset&microtime=' + new Date().getTime();

	hours = parseInt (hours);
	minutes = parseInt (minutes);
	seconds = parseInt (seconds);
}
setInterval ('clock_update ()', 1000);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2011, 12:31
Новичок на форуме
Отправить личное сообщение для Freedman Посмотреть профиль Найти все сообщения от Freedman
 
Регистрация: 08.06.2011
Сообщений: 2

Спасибо, ksa, таймер двигается, происходит запуск таймера новым пользователем, но при выходе из таймера и повторном входе время начинает отсчитываться с нуля, а должно быть продолжение отсчета времени с момента запуска таймера.
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2011, 13:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Freedman
а должно быть продолжение
Так запоминай дату захода и используй её, кто мешает-то?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
движение объекта lammeR Общие вопросы Javascript 5 08.03.2010 01:04
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
как можно создать iframe со скриптами GOll Общие вопросы Javascript 2 05.05.2009 11:32