Как задать дату отсчета таймера?
Есть таймер, но в таком виде при обновлении страницы таймер снова будет слетать на изначальное значение.
Как задать ему определенную дату отсчета или, в идеале, задать дату отсчета так, чтобы после прохождения оной, отсчет пошел в плюс? 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(); }); |
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 + ' часов'); |
Цитата:
|
Часовой пояс GMT +3, время: 09:31. |