Бывает, что вам для чего-то нужен таймер обратного отсчета , в интернете есть много решений, однако они либо очень громоздкие, либо имеют зависимости от других библиотек. Сегодня мы рассмотрим, как сделать таймер обратного отсчета на javascript в 18 строк кода .

План
  • Высчитайте оставшееся время
Установите правильную дату окончания

Во-первых, вам нужно установить правильную дату окончания. Это будет строка в любом из форматов, которые понимает Date.parse() метод. К примеру:

Var deadline = "2015-12-31";

Короткий формат

Var deadline = "31/12/2015";

Или длинный формат

Var deadline = "December 31 2015";

Каждый из этих форматов позволяет вам установить точное время(в часах, минутах, секундах) и временную зону. Например:

Var deadline = "December 31 2015 23:59:59 GMT+02:00";

Высчитайте оставшееся время

Function getTimeRemaining(endtime){
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t/1000) % 60);
var minutes = Math.floor((t/1000/60) % 60);
var hours = Math.floor((t/(1000*60*60)) % 24);
var days = Math.floor(t/(1000*60*60*24));
return {
"total": t,
"days": days,
"hours": hours,
"minutes": minutes,
"seconds": seconds
};
}

Для начала мы создаем переменную t , чтобы хранить оставшееся время. Date.parse() метод встроен в javascript и позволяет сконвертировать строку со временем в значение в миллисекундах. Это позволит нам вычитать одно время от другого и получать разницу между ними.

Var t = Date.parse(endtime) - Date.parse(new Date());

Приведите дату к удобному формату

Теперь мы хотим перевести миллисекунды в дни, часы, минуты и секунды. Давайте использовать секунды как пример:

Var seconds = Math.floor((t/1000) % 60);

Разберемся, что здесь происходит.

  • Делим миллисекунды на 1000, чтобы перевести их в секунды
  • Делим общее число секунд на 60 и сохраняем остаток - вам не нужны все секунды, только те, что остались после того, как минуты были подсчитаны
  • Округлите вниз до ближайшего целого значения, потому что вам нужны полные секунды, а не их фракции

Повторите эту логику, чтобы сконвертировать миллисекунды в минуты, часы и дни.

Выведите данные таймера, как многоразовый объект

Когда часы, минуты и секунды готовы, нам нужно вернуть их как многоразовый объект.

Return {
"total": t,
"days": days,
"hours": hours,
"minutes": minutes,
"seconds": seconds
};

Этот объект позволяет вам вызывать вашу функцию и получать любое из вычисленных значений. Вот пример, как вы можете получить оставшиеся минуты:

GetTimeRemaining(deadline).minutes

Удобно, правда?

Отобразите часы на странице и остановите их, когда они достигнут нуля

Сейчас у нас есть функция, которая возвращает нам оставшиеся дни, часы, минуты и секунды. Мы можем строить наш таймер. Во-первых, создайте следующую html структуру для часов:

Затем напишите функцию, которая будет отображать данные внутри нашего div"а :

Function initializeClock(id, endtime){
var clock = document.getElementById(id);
var timeinterval = setInterval(function(){


" +
"hours: "+ t.hours + "
" +
"minutes: " + t.minutes + "
" +
"seconds: " + t.seconds;

}
},1000);
}

Эта функция принимает два параметра: id элемента, который будет содержать наши часы, и конечное время счетчика. Внутри функции мы объявим переменную clock и будем использовать ее, чтобы хранить ссылку на наш блок с часами, так что нам не нужно запрашивать DOM .

  • Высчитывать оставшееся время
  • Выводить оставшееся время в наш div
  • Если оставшееся время = 0, останавливать часы

Единственное, что осталось, запустить часы следующим образом:

InitializeClock("clockdiv", deadline);

Поздравляю! Теперь у вас есть простой таймер обратного отсчета всего в 18 строк javascript кода .

Подготовьте ваши часы для отображения

До стилизации нам будет нужно немного усовершенствовать некоторые вещи.

  • Убрать начальную задержку, чтобы таймер показывался незамедлительно
  • Сделать скрипт часов более эффективным, чтобы не приходилось непрерывно перестраивать все часы
  • Добавить нули по желанию
Убираем начальную задержку

В часах мы используем setInterval , чтобы обновлять отображение каждую секунду. Чаще всего это нормально, кроме начала, где присутствует 1с задержка. Чтобы это исправить, нам нужно обновлять часы один раз до того, как setInterval запускается.

Чтобы это сделать, давайте переместим анонимную функцию, которую мы передаем в setInterval (ту, которая обновляет часы каждую секунду) в собственную отдельную функцию, которую назовем updateClock . Вызовите эту функцию однажды вне setInterval и затем вызовите ее снова внутри setInterval . Таким образом, часы будут показываться без задержки.

В вашем javascript замените это:

Var timeinterval = setInterval(function(){ ... },1000);

Function updateClock(){
var t = getTimeRemaining(endtime);
clock.innerHTML = "days: " + t.days + "
" +
"hours: "+ t.hours + "
" +
"minutes: " + t.minutes + "
" +
"seconds: " + t.seconds;
if(t.total clearInterval(timeinterval);
}
}

UpdateClock(); // запустите функцию один раз, чтобы избежать задержки
var timeinterval = setInterval(updateClock,1000);

Делаем скрипт более эффективным

Чтобы сделать скрипт более эффективным, нам нужно обновлять не все часы, а только цифры. Для этого поместим каждое число в тег span и будем обновлять только этот контент.

Вот html :


Days:

Hours:

Minutes:

Seconds:

Var daysSpan = clock.querySelector(".days");
var hoursSpan = clock.querySelector(".hours");
var minutesSpan = clock.querySelector(".minutes");
var secondsSpan = clock.querySelector(".seconds");

Function updateClock(){
var t = getTimeRemaining(endtime);

DaysSpan.innerHTML = t.days;
hoursSpan.innerHTML = t.hours;
minutesSpan.innerHTML = t.minutes;
secondsSpan.innerHTML = t.seconds;

...
}

Добавляем ведущие нули

Если вам нужны ведующие нули, вы можете заменить код такого вида:

SecondsSpan.innerHTML = t.seconds;

На такой:

SecondsSpan.innerHTML = ("0" + t.seconds).slice(-2);

Заключение

Мы рассмотрели, как сделать простой таймер обратного отсчета на javascript . Все, что вам осталось, это добавить стили. Спасибо за внимание!

В этой статье мы рассмотрим несколько вариантов таймеров.

1 вариант.
Простой таймер использующий только минуты и секудны



Чтобы таймер появился, необходимо элементу придать идентификатор timer и добавить условие в тег

Всё, таймер готов.

2 вариант.
Цифрами для таймера будет служить картинка. Также в этом таймере помимо минут и секунд доступны часы и дни. Наш таймер будет отсчитывать время до определенного дня.

Оформляем страницу


Таймер обратного отсчета




Для отображения времени будет использоваться картинка digits2_orange.png

Далее пишем js код



var t=Date.parse(deadline)-Date.parse(new Date());
var seconds = Math.floor((t/1000) % 60);
var minutes = Math.floor((t/1000/60) % 60);
var hours = Math.floor((t/(1000*60*60)) % 24);
var days = Math.floor(t/(1000*60*60*24));

$(function(){
$("#counter").countdown({
image: "pic/digits2_orange.png",
startTime: days+":"+hours+":"+minutes+":"+seconds,
timerEnd: function(){
$("#tut").html("Таймер завершил свою работу");
}
});
});
image - наша картинка
startTime - это как раз время оставшееся до 01.09.2017
timerEnd - то, что происходит по завершении работы таймера, в нашем случае в контейнер с идентификатором tut будет вставлена соответствующая надпись
Далее наш таймер

Осталось:


ДнейЧасовМинутСекунд






Оформляем
#layer{
width:600px;
text-align:center;
margin:0 auto;}

#counter{
margin:10pt auto 0 auto;
width:414px;}

Desc{
width:430px;
margin:0px auto;}

#days,#hours,#minutes,#seconds{
float:left;
font:13px Arial,Verdana,sans-serif;
width:50px;
margin-right:63px;
font-weight:bold;
color:#000;}

#seconds{margin-right:0px;}

CntSeparator {
font-size:50px;
margin:6px 7px;
color:#000;}
3 вариант.
На наш взгляд самый удобный. Также как и предыдущий показывает оставшееся количество дней, часов, минут, секунд. Не использует изображение для отображения счетчика.
Для работы нам понадобится библиотека jquery и файл

Оформляем страницу


Таймер обратного отсчета





// здесь нужная дата в формате гггг-мм-дд чч:мм:сс
var deadline="2017-08-20 00:00:00";



  • 00
    дни


  • 00
    часы


  • 00
    мин


  • 00
    сек



$(".countdown").downCount({
date: deadline,
},
function(){
/* действие после завершения таймера */
alert("Время истекло!");
});


И css для оформления внешнего вида
.countdown{
list-style:none;
margin:6px 0 0 0;
padding:0;
display: block;}

Countdown li{display: inline-block;}

/* здесь дни, часы, минуты, секунды */
.countdown li span{
width:100%;
color:#000;
font:18px Verdana;
display:inline-block;}

/* разделители. и: */
.countdown li.seperator {
color:#000;
font:16px Verdana;
vertical-align:top;}

Countdown li div{
margin:0;
color: #a7abb1;
font:8pt Verdana;}

Зачем нужен обратный таймер онлайн? Нужно срочно измерить время. Под рукой нет специального устройства. Использовать обычные часы или мобильный телефон неудобно? Предлагаем вашему вниманию таймер онлайн . Он отличается высокой точностью и удобством в использовании.

Таймеры онлайн незаменимы во время спортивных тренировок, совмещения нескольких дел. Когда важно не пропустить время и просто для измерения личных рекордов. Вам очень важно узнать, сколько страниц вы прочитаете за определенный промежуток времени. Сколько знаков в минуту печатаете или как быстро сможете пройти важный раунд в игре.

Таймер онлайн на любой вкус

Здесь представлены обратные таймеры как с лаконичным, так и оригинальным оформлением. Вы можете развернуть приложение на весь экран. Украсить свой рабочий стол красивыми старинными или песочными часами, ракетой, бомбой, романтической свечой. Все таймеры отличаются удобным функционалом. Для настройки времени понадобится всего несколько секунд.

Использовать обратный таймер онлайн со звуком можно прямо на нашем сайте. Откройте на весь экран любой таймер. Цените ваше время. Все очень просто и быстро! Активировать таймер при наличии интернета вы можете абсолютно бесплатно в любое удобное для вас время.

Как работает таймер онлайн обратного отчета?

Все представленные в данном разделе таймеры имеют очень простое и удобное управление. Обозначьте необходимый вам временной промежуток, нажмите «старт» и таймер начнет свою работу!

Обычно каждый обратный таймер имеет три окошка:

  • в первом обозначены часы
  • во втором – минуты
  • в третьем – секунды

При необходимости вы можете использовать функцию «пауза» или вообще отменить задачу.

Хотите выбрать самый лучший таймер онлайн? Здесь есть все счетчики. Выберите тот, который подходит вам! После использования таймера также не стесняйтесь делиться своим мнением с другими!

Часто нужно установить таймер на какое-то фиксированное время. Например, вы занимаетесь спортом, и вам нужно поставить таймер на пять минут для тренировок. Или же вы варите яйца вкрутую, и вам нужно засечь десять минут. Для решения этой проблемы используйте наш таймер. Используйте наш онлайн секундомер со звуком для отсчета 1 минуты на тренировках, для бытовых нужд, любых других целей. Можете сразу пользоваться им, или же перейти ниже по странице, где есть инструкция, как им пользоваться.

30 секунд 1 минута 2 минуты 3 минуты

5 минут 10 минут 15 минут 30 минут

Часы 0 — +

Минуты 0 — +

Секунды 30 — +

Звук:

Сброс Старт

Инструкция по использованию

Вы можете выставить фиксированное время, например:

  • таймер на 10 минут;
  • таймер на 1 минуту;
  • таймер на 2 минуты;

Список также включает варианты на 15 минут, 20 минут, на 3 минуты.

Для выставления этого времени воспользуйтесь кнопками, на которых написано это время. Например, чтобы поставить таймер на тридцать минут, нажмите на кнопку, где написано «30 минут». После этого нажмите кнопку «Старт». Если же вам нужно другое время, просто выставьте его, нажимая кнопки «+» и «-» возле соответствующих полей (часы, минуты и секунды). Выставить можно любое время — это может быть как одна-две минуты, или же отрезок длиной всего в одну секунду.

В конце отсчета вы услышите звук. Вы можете отключить его, нажав на соответствующий переключатель. Кнопка «Сброс» обнуляет все поля.

Мы сделали максимально удобный таймер, который вы можете поставить на 5, 20 минут, на любое другое время. Если у вас есть предложения по улучшению — пишите, и мы учтем их.

Секундомер онлайн

Часы 0 — +

Минуты 0 — +

Секунды 0 — +

Сброс Старт

Если же вам нужен просто секундомер, для тренировок или других целей — мы даем вам эту возможность тоже. Пользоваться им очень просто — нажмите на кнопку «Старт», и начнется отсчет времени. Кнопка «Пауза» приостановит отсчет, а кнопка «Сброс» сбросит время. Также вы можете начать отсчет с любого момента — не только с 0 секунд.

Пользуйтесь нашим секундомером — мы сделали все возможное для вашей комфортной работы.

Современные гаджеты призваны существенно облегчить жизнь - и онлайн таймер является одним из наиболее полезных, удобных и функциональных устройств. Он поможет отсчитать любой интервал времени, не забыть об окончании задачи, рационально распределить режим работы и отдыха. Наш таймер онлайн на 100% бесплатный, простой в использовании, практичный - именно такой, как нужен вам.

7 ситуаций, когда поможет таймер обратного отсчета

Мы создавали онлайн таймер для максимально точных расчетов, когда нужно уложиться в определенный временной промежуток и не потерять ни секунды. Таймер на сайте будет полезным, если вы засекаете время:

  • при готовке блюд, чтобы соблюсти рецепт;
  • во время занятий спортом - тренируйтесь ровно столько, сколько нужно;
  • для работы за компьютером - для глаз полезен 1 час работы и 15 мин. отдыха;
  • чтобы не опоздать на важную встречу, свидание, урок, автобус;
  • за развлечениями - узнайте, сможете ли вы за 1 мин. одеться, прочитать 200 слов, собрать из LEGO башню, пройти 10 лестничных пролетов и т.д.;
  • для грамотного тайм-менеджмента и планирования задач во время дня;
  • когда нужно кормить ребенка, принимать лекарства, делать укол.

Таймер онлайн во весь экран гораздо удобней мобильного приложения - страница быстро загружается, а севшая батарея смартфона не станет проблемой.

История таймера

Удивительно, но первый таймер появился в Древнем Китае более 2,5 тыс. лет назад. Он представлял собой палочку из смолы и опилок, которую поджигали с одного конца, на другом конце был грузик - при перегорании нити крепления он падал со звоном. Тогда же Платон в Греции изобрел аналог для приглашения учеников на уроки, схожими разработками занимался и Леонардо да Винчи.

Первый механический таймер появился в середине 1800-х годов, это был традиционный, и используемый сегодня будильник, стрелки которого переводятся на нужное время. Уже к концу XX века возник электронный таймер - наиболее точное устройство, применяемое сейчас в смартфонах.

Пошаговая инструкция: как пользоваться таймером?

Электронный таймер со звуком будет полезен всем работникам, домохозяйкам, спортсменам, студентам - тем, кому нужно засечь время и не забыть о важных задачах. Нашим таймером предельно легко и удобно пользоваться, соблюдая пошаговую инструкцию:

  • Нажмите «Старт», чтобы проверить тип сигнала и его громкость на обнуленном таймере.
  • Выберите временной интервал над счетчиком - диапазон от 1 минуты до 1 часа, можно добавлять время в один клик.
  • Если требуется указать другой промежуток, щелкните кнопку «+» и введите данные вручную - можно добавить описание.
  • Нажмите «Старт» и таймер онлайн начнет обратный отсчет, после истечения времени сработает звуковой сигнал.
  • Для остановки отсчета раньше времени и обнуления щелкните «Обнулить».
  • Если хотите, чтобы таймер работал беззвучно, нажмите на соответствующий значок справа от клавиши «Старт».
  • Онлайн таймер можно остановить без сброса результата, для этого используется кнопка «Стоп», для возобновления обратного отсчета нажмите «Старт».

    Наш бесплатный, функциональный и точный таймер с простым интерфейсом - находка для человека, который хочет рационально использовать каждую минуту и всегда успевать. Добавьте страницу в закладки, чтобы она всегда была под рукой - когда потребуется отсчитать время, таймер обязательно поможет.