Javascript.RU

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

Как задать дату отсчета таймера?
Есть таймер, но в таком виде при обновлении страницы таймер снова будет слетать на изначальное значение.
Как задать ему определенную дату отсчета или, в идеале, задать дату отсчета так, чтобы после прохождения оной, отсчет пошел в плюс?

var countdown = -353754;
var $display = [
		['',''], // 0
		['',''], // 1
		['',''], // 2
		['','']  // 3
];
{
	secs = parseInt(secs);	
	hh = secs / 3600;	
	hh = parseInt(hh);	
	mmt = secs - (hh * 3600);	
	mm = mmt / 60;	
	mm = parseInt(mm);	
	ss = mmt - (mm * 60);	
		
	if (hh > 23)	
	{	
	   dd = hh / 24;	
	   dd = parseInt(dd);	
	   hh = hh - (dd * 24);	
	} else { dd = 0; }	
		

	if (ss < 10)
	{
		$display[3][0].removeClass().addClass('int_0');
		$display[3][1].removeClass().addClass('int_'+ss);
	} else {
		$display[3][0].removeClass().addClass('int_'+ss.toString().substr(0,1));
		$display[3][1].removeClass().addClass('int_'+ss.toString().substr(1,1));
	}

	if (mm < 10)
	{
		$display[2][0].removeClass().addClass('int_0');
		$display[2][1].removeClass().addClass('int_'+mm);
	} else {
		$display[2][0].removeClass().addClass('int_'+mm.toString().substr(0,1));
		$display[2][1].removeClass().addClass('int_'+mm.toString().substr(1,1));
	}

	if (hh < 10)
	{
		$display[1][0].removeClass().addClass('int_0');
		$display[1][1].removeClass().addClass('int_'+hh);
	} else {
		$display[1][0].removeClass().addClass('int_'+hh.toString().substr(0,1));
		$display[1][1].removeClass().addClass('int_'+hh.toString().substr(1,1));
	}


	if (dd == 0)
	{
		$display[0][0].removeClass().addClass('int_0');
		$display[0][1].removeClass().addClass('int_0');
	} else {
		if(dd < 10)
		{
			$display[0][0].removeClass().addClass('int_0');
			$display[0][1].removeClass().addClass('int_'+dd);
		} else {
			$display[0][0].removeClass().addClass('int_'+dd.toString().substr(0,1));
			$display[0][1].removeClass().addClass('int_'+dd.toString().substr(1,1));
		}
	}	
}


{
	if (countdown < 0){}	
	else {	
		convert_to_time(countdown);
		setTimeout(function(){do_cd();}, 1000);
	}	
	countdown = countdown - 1;	
}
$(document).ready(function(){
	$display[0][0] = $('#display_0-0');
	$display[0][1] = $('#display_0-1');

	$display[1][0] = $('#display_1-0');
	$display[1][1] = $('#display_1-1');

	$display[2][0] = $('#display_2-0');
	$display[2][1] = $('#display_2-1');

	$display[3][0] = $('#display_3-0');
	$display[3][1] = $('#display_3-1');
	do_cd();
});
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2016, 11:06
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

1. Получаем с помощью метода объекта Date.now() - количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC.
2. Инициализируем дату отсчета в миллисекундах или в стандартном формате с дальнейшем парсингом в миллисекунды.
3. Вычитаем из назначенной даты текущее время.
4. Остаток устанавливаем как аргумент отсчета для таймера.
var 
     dateNow = Date.now(),
     dateEnd = 'Jun 21 2017 11:42:15',
     dateEnd = Date.parse(dateEnd),
     dateSet = (dateEnd - dateNow) / 1000; // минуты
     
     alert('До 11:42:15 21 июня 2017 года, осталось - ' + dateSet + ' минут или ' + dateSet / 60 + ' часов');
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2016, 14:49
Новичок на форуме
Отправить личное сообщение для Exhumed Посмотреть профиль Найти все сообщения от Exhumed
 
Регистрация: 21.06.2016
Сообщений: 2

Сообщение от Rasy Посмотреть сообщение
1. Получаем с помощью метода объекта Date.now() - количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC.
2. Инициализируем дату отсчета в миллисекундах или в стандартном формате с дальнейшем парсингом в миллисекунды.
3. Вычитаем из назначенной даты текущее время.
4. Остаток устанавливаем как аргумент отсчета для таймера.
var 
     dateNow = Date.now(),
     dateEnd = 'Jun 21 2017 11:42:15',
     dateEnd = Date.parse(dateEnd),
     dateSet = (dateEnd - dateNow) / 1000; // минуты
     
     alert('До 11:42:15 21 июня 2017 года, осталось - ' + dateSet + ' минут или ' + dateSet / 60 + ' часов');
Можно пожалуйста поподробнее как это применить, а то я в js полный ноль)))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять значение таймера ? Shenia1123 Ваши сайты и скрипты 0 27.05.2014 14:05
как в datepicker задать диапазон дат во время выполнения скрипта. Yurik jQuery 0 23.02.2011 12:19
не понимаю как задать правильный контекст loz Dojo toolkit 2 17.02.2011 18:36
Как задать default value в enctype="multipart/form-dat" Pumych Общие вопросы Javascript 1 15.02.2011 22:07
Как правильно задать ID в создаваемом элементе ? Indiana Events/DOM/Window 15 31.10.2010 16:15