Меню

Пример счетчика обратного отсчета



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

Мы разработали МеgaTimer, новый бесплатный таймер обратного отсчета онлайн с функциями зацикливания и отложенного запуска. Благодаря данным настройкам, счетчик может автоматически обнуляться каждый день.

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

Счетчик обратного отсчета на сайт

Счетчик обратного отсчета позволяет повысить конверсию вашего сайта или landing page. Используя таймер обратного отсчета, можно гибко выстроить коммуникацию с вашими пользователями. Рассмотрим основные типы таймера обратного отсчета:

Счетчик до определенной даты:

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

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

Счетчик на промежуток времени:

Данный формат счетчика эффективно используется для таймеров, которые отсчитывают несколько часов или минут, заставляя посетителя сайта быстрее сделать нужное целевое действие. Например «У вас есть 10 минут, чтобы оформить заявку получить скидку 30% на все товары».

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

Зацикленный таймер:

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

Данный вид таймеров используется для перезапуска акций на самые популярные товары. Например «Успейте сегодня купить сайт по акции со скидкой 40%».

Вставка скрипта обратного отсчета

Вы сможете легко установить скрипт обратного отсчета Megatimer. Теперь нет необходимости искать Javascript и jquery таймер обратного отсчета, так как счетчик легко устанавливается через html вставку таймера. Html код счетчика генерируется на сервисе и его нужно просто вставить на сам сайт.

Обратная связь

Если у вас есть предложения по улучшению качества сервиса или по функционалу таймера – пишите на почту support@lpmotor.ru Если вы уже используете наш таймер обратного отсчета на своем сайте – напишите нам о вашем сайте и расскажите, как вы используете функционал счетчика. Лучшие истории будут попадать в раздел «Примеры использования», где вы сможете прорекламировать свою деятельность и свой сайт полностью бесплатно.

Web-благотворительность

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

Источник

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

Самый простой и удобный таймер обратного отсчета

Javascript

Указываем дату окончания работы таймера

Формат вывода даты ISO 8601:

Вывод даты с точным временем и часовым поясом:

Вывод таймера для лендингов – таймер все время будет выводить, что осталось 15 дней (можно указать любое время)

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

Скрываем таймер после окончания времени и выводим сообщение, что время истекло

Данное решение предложил в комментариях Игорь.

Добавляем в HTML блок с сообщением

Добавляем такие стили в CSS:

В скрипте меняем функцию инициализации таймера function initializeClock(id, endtime) <. >, остальное оставляем так же, как было:

В данной функции изменилось то, что при истечении времени таймера, на сам таймер добавляется класс .hidden (скрывает таймер), а на сообщение об окончании времени вешается класс .visible (отображает сообщение), а так же прекращаем выполнение функции вызовом метода clearInterval(timeinterval); . А вывод единиц времени помещен после проверки истекло время или нет.

Рабочий пример Таймера обратного отсчета с выводом сообщения об истечении времени

Нажмите кнопку Rerun, чтобы убедиться, что все работает как надо.

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

Суть таймера в том, что при окончании времени таймер не останавливается, не выводится никакое сообщение, а просто начинается новый отсчет:

Таймер установлен на 5 секунд и при окончании времени будет перезапущен еще на 5 секунд

Разница в JS-коде между вариантом с выводом сообщения об окончании времени только в замене этого кода

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

Рабочий пример таймера обратного отсчета времени с рестартом

Комментарии (119) к “Простой таймер обратного отсчета на Javascript”

Артём

Я закопипастил код. В моем случае надо отсчитывать от 35 до 0 секунд. Таймер считает от 35 до 19 сек, а потом начинает считать в обратном порядке, от 19 до 60

Denis Creative

Никита

А как задать текущее время? Чтоб отсчет таймера шел от реально времени

Denis Creative

Это таймер обратного отсчета. Что вы имеете в виду под “Чтоб отсчет таймера шел от реально времени”?

Никита

Чтобы отсчет шел от времени которое на данный момент и до конечной даты

Denis Creative

По такому примеру таймер будет отсчитывать время до 20 мая

Александр

Подскажите как скрыть таймер когда время вышло?

Игорь

Denis Creative

Спасибо. Добавил код в статью.

Игорь

Это вам спасибо уже 3 заказ на фрилансе на основе этого кода )))

Николай

Подскажите, как сделать, чтобы при перезагрузке страницы время таймера не сбрасывалось?

Denis Creative

Таймер должен быть задан в таком случае на конкретную дату:
var deadline=»January 01 2019 00:00:00 GMT+0300″;
а не на текущее время + время таймера:
var deadline = new Date(Date.parse(new Date()) + 35 * 1000);

Денис

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

Denis Creative

Приведите пример, что нужно. Потому как в статье описаны 2 варианта, которые требуются в 99% использования таймеров.

Денис

Зациклить таймер можно ?

Денис

Так я же написал, что бы по окончанию счета он начал заново считать, а в примерах он заканчивает считать и показывается блок time the up

Denis Creative

В примере с выводом сообщения об окончании времени нужно изменить код

заменить на этот:

Рабочий пример добавил в статью

Денис

Здравствуйте, а если такая задача: считать до определённого времени от текущая дата + N дней?

Denis Creative

От текущей даты до + N дней такой код используется:

15 – дни
24 – часы
60 – минуты

Читайте также:  Кто делал поверку водяного счетчика

Александр

Denis Creative, здравствуйте!
Спасибо Вам за эту статью, она почти мне помогла.
Хотелось бы узнать, если ли возможность чтобы счетчик сбрасывался на сайте каждые два дня Допустим я его выгружаю в 0:00 и он стартует на два дня и потом снова сбрасывается на два дня.
Как я понял ваш вариант он запускается автоматически при загрузке старицы и другой каждый раз надо менять дату в коде.

Denis Creative

Нужно взять код таймера обратного отсчета времени с рестартом и поменять
1. Конечную дату

2. Обновление конечной даты после истечения срока действия таймера

Получится примерно такой код, не знаю, на сколько правильный, но вроде работает:
https://codepen.io/deniscreative/pen/BGEqdM

Виталий

Денис. А можете еще подсказать как сделать чтобы таймет продолжал считать в обратном направлении и при этом класс добавлялся к цифрам?
То-есть задача сделать что-то з 10 минут, таймер для тернировки. Если в 10 минут не укоадываются то красным идет обратный отсчет на сколько превысили время?

Denis Creative

Мне кажется, этот таймер не совсем подходит под Вашу задачу.

Здравствуйте, подскажите пожалуйста как сделать чтобы отсчёт шел допустим 2012 года 1 января допустим и до бесконечности? посмотрел в data-countdown на гите , там у них есть пример, но как реализовать так и не понял..
Спасибо.

Denis Creative

Не понял вопрос, как это до бесконечности?
Таймер обратного отсчета предполагает, что есть конечная дата, и ведет отсчет до нее.
Подсчет времени от какой-то даты до текущего момента, это простой таймер. Вам нужен просто таймер? Для этого нужен другой код.

Подскажите, а как в скрипте указать отображение русского языка. У меня ����������� отображается когда меняю на русский текст

Denis Creative

Стоит в шапке, все как надо. Причем вокруг текст на странице русский, нормально отображается, а вот именно текст скрипта ������������ ��������

Denis Creative

Чет не пойму, какой текст скрипта? Если скрипт только цифры выводит…

Dvtcnj Countdown Clock русская фраза, и вместо Hours и пр. Руский шрифт коверкается.

Denis Creative

Эти фразы не в скрипте, а в HTML используются.
Проверьте кодировку файла, чтобы там было UTF-8 без BOM.

санек

как сделать чтобы он не запускался сам?

Denis Creative

а как он должен запускаться?

санек

Denis Creative

это вам нужен обычный таймер, наверное

Владимир

Добрый день. А как сделать чтобы счетчик времени начинался с 02 часов 35 мин 25 сек?

Владимир

точнее таймер с обратным отчетов начинался 02:35:24

Denis Creative

2*60*60 + 35*60 + 24 = 9324 секунды

Нурбек

у меня ничего не выводит –

Может устарела библиотека?

Denis Creative

Тут нечему устаревать – проверьте свой HTML

Анастасия

А как сделать что бы таймер который по окончанию времени начинает отсчет заново (последний вариант) не скидывал время при обновлении страницы?
Т.е. мне надо чтоб он отсчитывал допусти 24 часа с 00:00:00 и в полночь отсчет опять обнулялся бы. А то сейчас получается что если ставить 12 часов отсчета при обновлении страницы опять 12 часов, а не 11:58

Denis Creative

Анастасия

Спасибо. Сначала почему то не получилось, но теперь все работает!

Denis Creative

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

Максим

Здравствуйте! Стоит такая задача. Таймер обратного отсчета, но что бы он отсчитывал до 15 числа каждого месяца до 19.00. Потом перезапускался и снова отсчитывал до 15 числа 19.00 следующего месяца. И так постоянно. Просто если поставить 30 дней а в месяце будет 31 то получиться что таймер не правильно будет считать

Denis Creative

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

Андрей

Здравствуйте! А как сделать так, что бы текущему времени добавить еще несколько секунд? Когда добавляю по кнопке запуск функции initializeClock(‘clockdiv’, deadline); – то считает уже два времени одновременно. Как остановить(убрать) первый отсчет времени? или обновить его

Denis Creative

Создайте пример на Codepen – будет понятнее, что вы имеете в виду.

Михайл

Спасибо! То что нужно ) Искал, но попадалось всякое. Мне нужна была фишка с указыванием GMT+0300 а то для разных стран показывалось разные значения )

Денис, здравствуйте. Смотрите, у меня два счётчика на сайте, что мне сделать, чтобы второй счётчик не слетел? Пожалуйста помогите

Denis Creative

Задать им разные id .

При этом весь скрипт копировать не нужно, просто инициализировать второй таймер отдельно initializeClock(‘countdown-2’, deadline);

Спасибо вам большое, Денис. Пост 17 года, а вы до сих пор помогаете другим. А таймер вообще очень хороший 🙂

Denis Creative

Рад, что информация на сайте полезна для кого-то)

Павел

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

Denis Creative

Можно, если использовать куки.

Василий

Добрый день. Очень классный таймер. А подскажите, пожалуйста, как изменить функцию, чтобы если больше месяца, указывал месяцы и количество дней. я добавил в return getTimeRemaining months, в updateClock дописал if (t.months > 0) <
t.days = t.days – (30 * t.months);
>. Как Вы понимаете, все работает, но не учитывается количество дней в месяце, а всегда по умолчанию считает 30. нужно чуть допилить, но не знаю в какую сторону смотреть.
мой код https://codepen.io/vasylbakanovskyi/pen/eYOzEZZ

Алексей

Было бы круто если дописать вывод слов (дни, часы, минуты, секунды) на js и проверять текущее значение времени и выводить корректное слово например 43 минуты или 25 минут. Думаю посыл понятен.

Denis Creative

Тогда это уже не будет “Простой таймер обратного отсчета на Javascript”.

Соломон

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

Denis Creative

А в чем проблема?

Выводится трехзначное число

Соломон

Уважаемый Денис ! Большое спасибо за ответ . Дело в том , что я новичок (хотя мне больше 70).
Я много времени изучал код Вашего таймера , скопировал , что-то добавлял , но так и не получил результата .Читая комментарии . понял , что для обращения к Вам , полезно использовать codepen.io .Очень прошу , если найдёте время , найдите ошибку в моём коде
https://codepen.io/solomon-shmulevich/pen/dybdGdV . Заранее благодарю.

Denis Creative

Добрый день, подчистив немного Ваш код и заменив переменную deadline :
var deadline=»January 01 2022 00:00:00 GMT+0300″;
получаем вполне рабочий вариант с трехзначным форматом для дней.
В Codepen во вкладке HTML нужно добавлять только код HTML внутри тега , во вкладке CSS нужно следить за правильным открытием и закрытием скобок, а во вкладке JS не должно быть ничего лишнего кроме кода Javascript.

Соломон

Уважаемый Денис! Огромное спасибо! Желаю Вам здоровья и успехов!

Denis Creative

Олександр

Здравствуйте а как сделать так чтобы скрипт отсчитывал от введенной даты 7 дней и писал осталось
например ведена дата 2019-10-1 , отсчитывал этой даты 7 дней и выводил оставшихся дней, часов,… до читал до ноля после останавливался

Читайте также:  Как отправить результаты счетчиков

Denis Creative

Просто немного изменить скрипт, или заказать нужный скрипт на фрилансе.

Олександр

вопрос как изменить)))

Олександр

или боле точнее вы может его так изменить? сам наверное не допру((((

Denis Creative

Извиняюсь, нет времени разбираться, может кто-то здесь ответит, но лучше обратиться на фриланс.

Олександр

понятно печально, спасибо за помощь врядли тут кто-та поможет, а можно взять ваш код и обратиться за помощью на другие ресурсы??

Denis Creative

Да, конечно, успехов!

Алиса

А как остановить таймер, когда время закончится (будет значение во фронте 0:0:0:0, чтобы в минус не уходило)?

Сергей

Алиса, там же есть вверху пример номер 2, “Таймера обратного отсчета с выводом сообщения об истечении времени”, выводите что-то типа “ВремяИстекло!”

Сергей

Спасибо! Отлично! Встроил его в компонент в битриксе. Крутое и простое в реализации решение!

Розалия

Здравствуйте.
Встроила таймер на свой сайт, чтобы каждый день с 00:00 отчитывало заново. При переходе на следующий день в блоке “день” при новой загрузке страницы каждый раз на 2-3секунды выходит значение -1, потом всё исправляется и показывает правильно 0. При этом часы, минуты, секунды считает правильно.
Что надо исправить? подскажите, пожалуйста

Denis Creative

Не знаю, на сколько получилось правильно, но вот пример – https://codepen.io/deniscreative/pen/xxbORRP

Нужно поменять функцию updateClock()

Розалия

Спасибо большое! Всё работает правильно.

Александр

Денис, здравствуйте а как сделать так же только 2 дня.
А то тот что выше не работает(

Denis Creative

Всё работало, сделайте на codepen пример, будет видно, что не работает и почему.

viktor

всё отлично работает.Скрипт вставил себе на сайт, и просто повставлял себе в код ID и class, и все отлично заработало. Спасибо.

Dennis

Денис, спасибо вам за данный таймер, но есть проблема его отображения в Firefox, вместо отсчета выводится выводится nAn, все остальное aN. Я пробовал вывести в консоль переменную t она выводит NaN . Как это исправить?

Denis Creative

Проверьте все классы и их правильное использование в javascript-коде. Данный таймер работает во всех браузерах.

Dennis

Вопрос решил! Была проблема с форматом даты, вместо “March 15 2020 00:00:00 GMT+0300” я указал ‘Sun, 15 Mar 2020 00:00:00 GMT’ и таймер заработал

Denis Creative

Виктор

Интересный модуль, но есть вопрос. Можно как то на сайте добавить 2 раза тот же модуль 1 с тайм енд с текстом об етом и 2 с тайм рестарт? У меня конфликт получается.

Denis Creative

добавить разные ID для блоков таймеров и соответственно, и будет 2 функции

и будут две инициализации

В HTML будет 2 таймера

Остальной код по идее можно оставить. Главная идея в разных ID.

Виктор

проверяю по разному но нет отображения времени,что то видимо не так.

Denis Creative

Проверьте классы, id, и код в скрипте.

Vadim

Добрый день, все круто, спасибо.
Но есть один момент. Стоит задача сделать таймер на два времени.
12:00 и 20:00 то есть как только время достигает 12:00 таймер должен начинать считать до 20:00 и такое период каждый день.
За ранее спасибо.

Denis Creative

Обратитесь на фриланс, я делал разные варианты только для часто используемых таймеров.

Bublik

Спасибо за таймер, благодаря тебе выполнил около десятка версток с знанием лишь html/css))

Denis Creative

Успехов! Но jquery тоже желательно подучить, там ничего сложного нету.

Ксения

Спасибо, все понятно и просто

ПОМОГИ

ПОЧЕМУ У МЕНЯ НЕ РАБОТАЕТ ТАЙМЕР ЧТО НАДА ДЕЛАТЬ ПЛИЗ ПОМОГИ

Denis Creative

В статье все подробно расписано. Нужно HTML код вставить в свой HTML файл, а CSS в свой файл стилей, javascript нужно закинуть в свой файл скриптов и не забыть подключить jquery. Все просто.

Сергей

При попытке отписаться от комментариев в этой ветке у тебя на сайте возникает ошибка.

Denis Creative

Спасибо за сообщение.
Отключил плагин Subscribe to Comments – он устарел походу.

Елена

Здравствуйте!
Спасибо за Ваш таймер, получилось его настроить под свои нужды, но беда в том, что мне нужно его сбрасывать, если пользователь логинится на сайте.
То есть, я при инициализации автоизации вызываю функцию cancelTimer

в надежде, что отработает if в функции initializeClock и таймер очистится.
Но почему-то clearInterval(timeInterval); не отрабатывает.
Я думала, что это из-за области видимости, но у меня никак не получается с этим разобраться, даже если вынести let timeInterval из функции в глобальную область видимости.

Вот мой код инициализации таймера:

Буду очень благодарна за любую подсказку

скажите почему нечего не работает все подключил и ввел. А таймер не запускается.

Denis Creative

Залейте страницу со всем кодом таймера на какой-нибудь тестовый сервер, чтобы можно было ответить.
У всех работает, значит нужно искать у вас ошибку.

ИльяС

Denis Creative

Пжлйст, залетай ещё!

Andrew

Странно, реально не работает. Всё сделано копипастом.

Andrew

Вот репозиторий:
github.com/smartbit45/test
Вот сайт уже с хоста:
smartbit45.github.io/test/

Что тут может быть не так?

Denis Creative

поместите скрипт в самый низ html перед закрывающимся

Источник

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

Дата публикации: 2012-08-13

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

Логику скрипта мы напишем на языке Javascript, с использованием библиотеки jQuery. А визуальное оформление создадим с помощью обычного HTML. Для тех, кто не знает, библиотека jQuery – это библиотека, написанная на языке Javascript. Если сказать другими словами, то это набор готовых функций, для облегчения взаимодействия Javascript и HTML.. Эта библиотека предоставляет нам очень большой выбор различных функций и методов по доступу к атрибутам и содержимому выбранных элементов. Итак, давайте приступим.

1. Создание HTML разметки.

Первым делом создадим визуальную часть нашего скрипта, то есть разметку на основе HTML. Для этого создадим новый файл под названием index.html. Вот с таким содержимым:

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Как Вы видите имеется общий контейнер с идентификатором в котором будет расположен наш таймер. В нем содержится вспомогательный контейнер с идентификатором который служит для более красивого отображения таймера. Далее обратите внимание, что в контейнерах с идентификаторами ‘id=’min’, будут содержатся — дни, часы, минуты и секунды соответственно. Между этими контейнерами вставлены блоки с идентификаторами которые служат разделителями для каждого элемента таймера (как обычно разделитель для времени — это символ «:»). Так как каждый элемент времени таймера (секунды, минуты, часы, дни) выводится в двузначном формате, то для более красивого отображения времени я предусмотрел для каждого разряда времени свой блок. К примеру, для отображения секунд предусмотрен блок с идентификатором и для каждого разряда предусмотрен свой блок: для единиц — блок для десятков — Остальные элементы времени по аналогии.

Читайте также:  Счетчики рядов для вязальных машин

Теперь необходимо создать файл для хранения правил css, для нашего скрипта, как Вы видите я подключаю файл style.css, поэтому его и создадим. Вот его содержимое:

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

Теперь нам осталось создать сам таймер и вывести на экран.

2. Подготовка к кодированию на Javascript.

Первым делом давайте создадим пустой файл script.js, в котором будут храниться скрипты на языке Javascript, и сохраним его в папке js. Далее давайте подключим этот файл к нашему скрипту (между тегами head):

Далее нам понадобится библиотека jQuery, которую можно скачать с официального сайта //jquery.com кликнув по кнопочке DOWNLOAD. После скачивания библиотеки также ее сохраним в папке js и подключим к нашему скрипту:

3. Создаем логику таймера.

Итак, для начала перейдем в файл script.js и откроем код для работы с библиотекой jQuery:

Как Вы помните, для того что бы начать работу с библиотекой jQuery, необходимо выбрать элемент document нашей страницы, и для него вызвать обработчик события ready (который сработает после полной загрузки страницы), и в этом обработчике описываем функцию в теле которой и ведем кодирование с использованием библиотеки jQuery.

Теперь приступим к написанию логики таймера. Работа таймера будет основана на периодическом вызове функции, которая при каждом своем вызове, будет измерять количество миллисекунд, от текущего времени, и до времени отсчета (время от которого необходимо вести обратный отсчет), при этом выводя результат на экран в удобном нам виде (в виде стандартных часов). Конечно, эту функцию мы будем вызывать с интервалом в одну секунду, для точного вывода секунд нашего таймера. То есть за один вызов функции мы будем проводить один замер времени и выводить его на экран.

Итак, давайте создадим функцию get_timer() которая и будет функцией вызова таймера. Далее в этой функции создадим переменную date_new, в которой будем хранить дату от которой нужно вести обратный отсчет. Дата будет представлять собой строку формата:

Месяц День,Год ЧЧ:ММ

К примеру, если мы хотим назначить датой отсчета 1 июля 2012 года и время 12.00, то строку необходимо сформировать таким образом:

Теперь давайте приведу часть кода функции для дальнейших пояснений:

Обратите внимание, далее создаем объект класса Date (записываем его в переменную date_t) и передаем его конструктору — дату отсчета времени. Класс Date предназначен для работы с датами и временем. Если конструктору, не передавать ни каких значений, то будет создан объект класса Date с текущими датой и временем. Которую, мы можем вывести, если нам это необходимо. Дата и время в объекте Date, хранятся не в явном виде, а в виде количества миллисекунд прошедших с 0 часов 0 минут 1 января 1970 года. Поэтому мы можем узнать, сколько пройдет миллисекунд между временем отсчета и текущей датой, что мы и делаем и сохраняем результат в переменную timer.

То есть в переменной timer у нас содержится количество миллисекунд до времени отсчета. Значит, нам осталось только узнать, сколько это будет дней, часов, минут и секунд, а затем просто вывести это на экран. Первым делом переведем миллисекунды в привычное для нас время (продолжаем кодировать функцию get_timer()):

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Итак, для начала сделаем небольшую проверку, но то, не закончен ли отсчет. Если количество миллисекунд в переменной date_t больше чем в переменной – date, значит необходимо продолжать отсчет. Если же меньше – то мы с помощью jQuery производим выборку блока с идентификатором clock ($(«#clock»)) и при помощи метода html() вставляем в выбранный блок данные, которые переданы ему параметром (метод html() выводит данные, которые переданы ему параметром, в выбранный блок).

Первым делом найдем количество дней до даты отсчета. Для этого переменную таймер делим на количество миллисекунд в одном дне, а это можно узнать из выражения – 24*60*60*1000 (в одной секунде 1000 миллисекунд, в одной минуте 60 секунд, в одном часе 60 минут и в одном дне 24 часа). С помощью функции parseInt() мы отбрасываем у результата дробную часть, так как эта функция, приводит строку, переданную ей параметром, к целочисленному результату (попросту говоря, возвращает число, а если это невозможно, то NaN). Далее если получившееся число меньше 10 – добавляем 0, так как каждый элемент времени нужно выводить в двузначном формате. И затем с помощью метода toString() приводим получившийся результат (переменную day), к строковому типу данных (это нам понадобится для более красивого отображения времени, но об этом позже). Как видите здесь все просто – немного математики и все.

Далее часы определяем по аналогии с днями, только переменную делим уже на количество миллисекунд в одном часе. Но теперь необходимо отбросить дни, так как мы сейчас получили общее количество часов до указанной даты отсчета. Для этого мы с помощью операции – остаток от деления отбрасываем дни. Для обозначения этой операции используется символ — % и возвращает эта операция — остаток от деления левого операнда на правый операнд. То есть мы как бы делим общее число получившихся часов на 24 (количество часов в одном дне) и берем от результата только остаток от деления – так как целая часть от деления – это уже дни, а мы их уже получили.

Затем находим минуты – все по аналогии. Переменную таймер делим на количество миллисекунд в одной минуте и отбрасываем часы (как и в примере выше – берем остаток от деления общего количества минут на 60 – количество минут в одном часе).

И последнее, находим секунды. Для этого все также делим переменную таймер на количество миллисекунд в одной секунде и отбрасываем минуты. Все также берем остаток от деления общего количества секунд на 60 – количество секунд в одной минуте.

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

Источник