Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Rustem

Recommended Posts

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

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

<!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;
Надіслати
Поділитися на інших сайтах


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

<!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>
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.