Rustem

[РЕШЕНО]Нужна небольшая помощь по таймеру

Рекомендуемые сообщения

Rustem    31

Не знаю где открыть тему, попробую тут.

Есть код таймера, который отсчитывает время до окончания текущего дня:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http-~~-//www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>Таймер</title>
	<script type='text/javascript'>

		//Создание таймера
		function create_target_date(){
			var target_date = new Date();
			//target_date.setDate(target_date.getDate()+1);
			target_date.setHours(23,59,59);
			return target_date;
		}

		//Вычисление
		function calculation_timer(){
			var target_date = create_target_date();
			var current_date = new Date();
			val_timer = target_date.getTime() - current_date.getTime();

			var hours = Math.floor(val_timer/1000/60/60);
			var minutes = Math.floor((val_timer-hours*60*60*1000)/1000/60);
			var seconds = Math.floor(((val_timer-hours*60*60*1000)-minutes*60*1000)/1000);

			document.getElementById('hours').innerHTML = hours;
			document.getElementById('hours_legend').innerHTML = format_legend(hours,['час','часа','часов']);

			document.getElementById('minutes').innerHTML = minutes;
			document.getElementById('minutes_legend').innerHTML = format_legend(minutes,['минута','минуты','минут']);

			document.getElementById('seconds').innerHTML = seconds;
			document.getElementById('seconds_legend').innerHTML = format_legend(seconds,['секунда','секунды','секунд']);
		}

		//Запуск таймера
		function start_timer(){
			calculation_timer();
			id_timer = setInterval(calculation_timer,1000);
		}

		//Формирование нужного падежа надписей
		function format_legend(time,legend){
			var text = '';
			if (time >=11 && time <=14)
			{
				text = legend[2];
			}
			else
			{
				time = time % 10;
				if (time == 1)
					text = legend[0];
				else if(time>=2 && time<=4)
					text = legend[1];
				else
					text = legend[2];
			}
			return text;
		}
	</script>
	<style type='text/css'>
		#hours{font-weight: bold; color: #f00;}
		#minutes{font-weight: bold; color: #f00;}
		#seconds{font-weight: bold; color: #f00;}
	</style>
</head>
<body onload='start_timer();'>
	<fieldset style='width: 300px; height: 40px;'>
		<legend>Таймер</legend>
			Осталось: <span id='hours'></span> <span id='hours_legend'></span> <span id='minutes'></span> <span id='minutes_legend'></span> <span id='seconds'></span> <span id='seconds_legend'></span>
	</fieldset>
</body>
</html>

Нужно написать условие, чтобы всегда выводились двузначные цифры. То есть сейчас, если осталось 5 секунд, то он так и пишет, а мне нужно чтобы писал: "05".

Помогите пожалуйста, больше не к кому обратиться.

-------------

Нашел как реализовать, нужно добавить:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
cmd    251

Надо было создать тему на javascript.ru, ага :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Baco    395

А так не пробывали:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
		<head>
				<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
				<title>Таймер</title>
				<script type='text/javascript'>
					  
						//Создание таймера
						function create_target_date(){
								var target_date = new Date();
								//target_date.setDate(target_date.getDate()+1);
								target_date.setHours(23,59,59);
								return target_date;
						}
						//Вычисление
						function calculation_timer(){
								var target_date = create_target_date();
								var current_date = new Date();
								val_timer = target_date.getTime() - current_date.getTime();
								var hours = Math.floor(val_timer/1000/60/60);
								var minutes = Math.floor((val_timer-hours*60*60*1000)/1000/60);
								var seconds = Math.floor(((val_timer-hours*60*60*1000)-minutes*60*1000)/1000);
							  
								document.getElementById('hours').innerHTML = hours;
								document.getElementById('hours_legend').innerHTML = format_legend(hours,['час','часа','часов']);
							  
								document.getElementById('minutes').innerHTML = minutes;
								document.getElementById('minutes_legend').innerHTML = format_legend(minutes,['минута','минуты','минут']);
							  
								document.getElementById('seconds').innerHTML = seconds;
								document.getElementById('seconds_legend').innerHTML = format_legend(seconds,['секунда','секунды','секунд']);
						}
						//Запуск таймера
						function start_timer(){
								calculation_timer();
								id_timer = setInterval(calculation_timer,1000);
						}
						//Формирование нужного падежа надписей
						function format_legend(time,legend){
if (time < 10) time = "0" + time;
								var text = '';
								if (time >=11 && time <=14)
								{
										text = legend[2];
								}
								else
								{
										time = time % 10;
										if (time == 1)
												text = legend[0];
										else if(time>=2 && time<=4)
												text = legend[1];
										else
												text = legend[2];
								}
								return text;
						}
				</script>
				<style type='text/css'>
						#hours{font-weight: bold; color: #f00;}
						#minutes{font-weight: bold; color: #f00;}
						#seconds{font-weight: bold; color: #f00;}
				</style>
		</head>
		<body onload='start_timer();'>
				<fieldset style='width: 300px; height: 40px;'>
						<legend>Таймер</legend>
								Осталось: <span id='hours'></span> <span id='hours_legend'></span> <span id='minutes'></span> <span id='minutes_legend'></span> <span id='seconds'></span> <span id='seconds_legend'></span>
				</fieldset>
		</body>
</html>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rustem    31

Не пробовал, но предыдущий вариант работает)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу