Как сделать обратный отчёт времени на javascript

Комбайн PowerOff

Этой программой я пользуюсь уже много лет и мне всё нравится. PowerOff не требует установки и работает сразу после скачивания. Хоть она уже давно не обновляется, тем не менее все функции работают отлично. Поначалу может показаться, что программа сложновата, но не обязательно вникать во все функции, которых немало:

  • Таймер выключения компьютера по времени или по расписанию
  • Выбор действия после срабатывания события
  • Winamp, CPU и Internet –зависимые таймеры
  • Встроенный ежедневник
  • Встроенный планировщик задач
  • Управление программой с помощью горячих клавиш
  • Управление программой WinAmp
  • Автозапуск вместе с Windows

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

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

Иногда не известно, когда компьютеру нужно отключиться или лень считать. На этот случай в PowerOff предусмотрено несколько вариантов.

CPU-зависимый таймер

Если компьютер должен выключаться после выполнения ресурсоёмкой задачи.

  • Ставим галочку «Минимальная загрузка процессора»
  • справа указываем проценты максимальной нагрузки
  • выставляем «Время фиксации загрузки процессора».

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

Internet – зависимый таймер

Для выключения по окончании скачивания больших файлов из интернета.

  • Ставим галочку «Получать статистику»
  • выбираем отслеживаемый сетевой интерфейс, например Wi-Fi
  • затем ЧТО учитывать, например «Скорость входящего трафика»
  • и минимальный порог скорости
  • а также вводим количество секунд или минут в параметр «Фиксировать скорость в течение».

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

WinAmp – зависимый таймер

Очень полезная функция для тех, кто любит засыпать под любимую музыку, и при этом пользуется плеером WinAmp. Просто ставим галочку «Срабатывать после проигрывания» и ставим сколько треков нужно проиграть, либо после последнего трека. Эту функцию могут также использовать пользователи Foobar2000. Для этого есть специальный плагин для Foobar2000 «WinAmp API Emulator», который заставляет другие приложения считать что он – это WinAmp.

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

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

При появлении такого окошка ещё можно остановить процесс отключения компьютера. Значение в секундах задаётся в настройках программы. Там же можно включить автозапуск и посмотреть другие настройки.

Кроме завершения работы, можно выбрать другое действие:

  • Перезагрузить компьютер
  • Перейти в спящий режим
  • Блокировать компьютер
  • Завершить текущий сеанс пользователя
  • Отключить (разорвать) сетевое соединение
  • Удалённо выключить другой компьютер
  • Послать команду по сети

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

Определяем таймер

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

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

Глобальный метод JavaScript многократно выполняет функцию. Его первый аргумент — это функция, которая должна быть выполнена, а второй аргумент — это задержка между выполнениями. Вам нужно объявить задержку в миллисекундах. Здесь будет 1000, поскольку мы будем обновлять таймер каждую секунду (1 секунда = 1000 миллисекунд).

var timer = setInterval(function() {

    /* Здесь идет остальная часть кода JavaScript. */

}, 1000);

CSS трансформации

Большинство CSS-свойств плохо подходят для анимирования, так как их изменение вызывает перерисовку страницы. Но есть два «безопасных» свойства, которыми мы можем воспользоваться:  и .

Подробнее об анимации в вебе можно прочитать в замечательном руководстве High Performance Animations.

Для оживления таймера возьмём надёжное свойство . Оно обеспечит перемещение блока только по -оси.

.selector {
  transform: translateY(0);
}

Можно воспользоваться и полным свойством , но помните, что его первый аргумент соответствует -координате. Если хотите перемещать элемент только по вертикали, то передайте первым параметром .

.selector {
  transform: translate(3em);
}

/* то же самое */
.selector {
  transform: translate(3em, 0);
}

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

Создаем таймер обратного отсчета на сайт!

таймер для сайта

Вот посмотрите сначала, что у Вас получится если Вы будете следовать моим советам и создадите подобный таймер для сайта. Нажмите на кнопку “Демо” и увидите таймер обратного отсчета времени, который в итоге должен у Вас получиться:

демо

Если Вам он понравился и Вы хотите создать такой же счетчик обратного отсчета на своем сайте, то давайте это сделаем прямо сейчас!

Мы с вами не будем использовать для создания подобного таймера обратного отсчета времени ни каких лишних инструментов, как дополнительные библиотеки jquery, а сделаем все на обычном javascript и в одном html файле. За то все быстро, легко для Вас и для сайта!

Этот таймер обратного отсчета времени будет обладать такими функциями как:

  • Вы сможете установить отсчет количества часов, минут и секунд
  • На каждой секунде отсчета, соответственно уменьшается время на одну секунду
  • Когда истекает установленное время отсчета, то появляется всплывающее окно с оповещающим текстом, что таймер сработал

Теперь давайте создадим данный таймер обратного отсчета времени на сайте. Вот сам код таймера:

<!DOCTYPE html> <html> <head> <meta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′> <title>Создаем таймер обратного отсчета – Seo блог sergey-oganesyan.ru</title> <script> window.onload = function(){

function timer(){

var hour = document.getElementById(‘hour’).innerHTML; var minute = document.getElementById(‘minute’).innerHTML; var second = document.getElementById(‘second’).innerHTML; var end = false;

if( second > 0 ) second–; else{ second = 60;

if( minute > 0 ) minute–; else{ second = 60;

if( hour > 0 ) hour–; else end = true; } }

if(end){ clearInterval(intervalID); alert(“Таймер сработал!”); }else{ document.getElementById(‘hour’).innerHTML = hour; document.getElementById(‘minute’).innerHTML = minute; document.getElementById(‘second’).innerHTML = second; } } window.intervalID = setInterval(timer, 1000); } </script> <style> #timer{ margin: 20px auto; text-align: center; color: #333; font-family: fantasy; font-size: 100px; cursor: default; }

#timer div{ display: inline; } </style> </head> <body>

<div id=”timer”> <div id=”hour”>11</div>&nbsp;: <div id=”minute”>56</div>&nbsp;: <div id=”second”>45</div> </div>

</body> </html>

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

Вот этот кусок кода простой html, где содержится обертка для цифр с их идентификатором “timer” и блоки с их “id”:

<div id=”timer”> <div id=”hour”>11</div>&nbsp;: <div id=”minute”>56</div>&nbsp;: <div id=”second”>45</div> </div>

В html коде Вы сможете изменить отсчет времени на свой.

Далее идет обыкновенный CSS код:

#timer{ margin: 20px auto; text-align: center; color: #333; font-family: fantasy; font-size: 100px; cursor: default; }

#timer div{ display: inline; }

В нем Вы сможете изменить стили на свои, если это будет Вам нужно. То есть поменять цвет, размер и т.д.

А теперь самое главное в этом скрипте – сам javascript, который отвечает за все функции нашего таймера. Вот так он выглядит:

function timer(){

var hour = document.getElementById(‘hour’).innerHTML; var minute = document.getElementById(‘minute’).innerHTML; var second = document.getElementById(‘second’).innerHTML; var end = false;

if( second > 0 ) second–; else{ second = 60;

if( minute > 0 ) minute–; else{ second = 60;

if( hour > 0 ) hour–; else end = true; } }

if(end){ clearInterval(intervalID); alert(“Таймер сработал!”); }else{ document.getElementById(‘hour’).innerHTML = hour; document.getElementById(‘minute’).innerHTML = minute; document.getElementById(‘second’).innerHTML = second; } } window.intervalID = setInterval(timer, 1000);

Теперь Вы можете таймер обратного отсчета скачать вот здесь:

скачать исходник

Этот файл содержит уже готовый к использованию таймер обратного отсчета на сайт!

На этом заканчиваю свой рассказ! Всем удачи и до новых встреч!

Таймер javascript со звуковым сигналом

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

Нам понадобится :

Отдельный div с id.

<div id=»wave»></div>

Музыкальный файл :

Функция play :

function play() {document.getElementById(«wave»).innerHTML = «<audio src=\»https://dwweb.ru/__a-data/mp3/windows_xp_start.mp3\» autoplay></audio>»}

Alert заменяем на вызов функции play

Соберем все вместе:

html

<div id=»wave»></div>

javascript

window.onload = function() {

function play() {document.getElementById(«wave»).innerHTML = «<audio src=\»https://dwweb.ru/__a-data/mp3/windows_xp_start.mp3\» autoplay></audio>»}

setInterval(MY_FOO_3, 1000);

function MY_FOO_3() {

peremennaya_1 = document.getElementById(«show_3»).innerHTML;

if(peremennaya_1)

{

if(peremennaya_1 !== «stop timer» )

{

if(peremennaya_1 !== «0» )

{

peremennaya_1 = peremennaya_1 — 1;

document.getElementById(«show_3»).innerHTML = peremennaya_1;

}

else

{

play();

document.getElementById(«show_3»).innerHTML = «stop timer»;

}

}

}

}

};

Запустить таймер

jQuery

Сначала сделаем вспомогательные функции, которые используются в плагине:

  • init — генерирует разметку, которая приведена выше;
  • switchDigit — получает элемент span . position и анимирует цифры внутри него.

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

assets/countdown/jquery.countdown.js

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

assets/countdown/jquery.countdown.js

Функция tick вызывает саму себя (рекурсия) каждую секунду. В ней мы вычисляем время между заданной точкой и текущим значением. Функция updateDuo затем обновляет цифры в соответствии с полученными данными.

Плагин готов! Теперь рассмотрим пример его использования (демонстрационная страница):

Заключение

Плагин можно использовать на страницах с информацией о каком-либо событии. Основными его преимуществом является полная реализация на CSS без изображений. Увеличение или уменьшение размера шрифта позволяет выделить нужные единицы времени. А для отключения ненужных единиц надо использовать свойство display:none в соответствующем классе.

Данный урок подготовлен для вас командой сайта ruseller.com Источник урока: tutorialzine.com/2011/12/countdown-jquery/ Перевел: Сергей Фастунов Урок создан: 12 Января 2012 Просмотров: 141896 Правила перепечатки

ЕЩЁ

Полноэкранное видеоМодальное окноШкала времениИндикатор прокрутки Индикатор выполненияПанель навыковПолзунок диапазонаПодсказки при наведенииВсплывающие окнаСкладная секцияКалендарьВключить HTMLСписок делЗагрузчикиЗвездный рейтингПользовательский рейтингНаложениеКонтактные чипыКарточкиФлип-картаКарточка профиляКарточка товараОкно тревогиВыноска сообщенияПримечаниеМеткиКругиHR Горизонтальная линияКупонГруппа списковОтзывчивый текстВырезанный текстСветящийся текстФиксированный подвалЛипкий элементРавная высота столбцовОчистка поплавкаОтзывчивые поплавкиСнэк-бар/тостПолноэкранное режимЧертеж при прокруткеПлавная прокруткаГрадиент фонаЛипкий заголовокИзменить заголовок при прокруткеОтзывчивые столбцы ценПараллаксСоотношение сторонПереключатель нравится/не нравитсяПереключатель скрыть/показатьПереключаель текстаПереключатель классаДобавить классУдалить классАктивный классДревовидное представлениеУдалить свойствоАвтономный режим обнаруженияСделать скрытый элементПеренаправление веб страницыУвеличить при наведенииФлип-боксЭлемент вертикально по центруПереход при наведении курсораСтрелкиФигурыСсылка для скачиванияПолная высота элементаОкно браузераПользовательская полоса прокруткиРазличные устройстваЦвет заполнителяЦвет выделения текстаЦвет макераВертикальная линияАнимированные иконкиТаймер обратного отсчетаПишущая машинкаСтраница заставкиСообщение чатаВсплывающее окно чатаРазделенный экранРекомендацииСчетчик разделаСлайд-шоу цитатЗакрываемые злементы спискаТипичные точки прерыванияПеретаскиваемый HTML элементМедиа запросы JSПодсветка синтаксисаJS анимацииПолучить элементы Iframe

ФОРМЫ

Форма входаФорма регистрацииФорма оформления заказаКонтактная формаФорма входа в соц сетиРегистрацияФорма с иконкамиРассылка по почтеСложенная формаАдаптивная формаФорма всплывающаяФорма линейнаяОчистить поле вводаКопирование текста в буфер обменаАнимированный поискКнопка поискаПолноэкранный поискПоле ввода в менюФорма входа в менюПользовательский флажок/радиоПользовательский выборТумблер перключательУстановить флажокОпределить Caps LockКнопка запуска на EnterПроверка пароляПереключение видимости пароляМногоступенчатая формаФункция автозаполнения

Код скрипта для отсчета времени

Скопируйте код PHP и вставьте на ваш сайт в то место, где вы хотите видеть вывод даты. Но скрипт должен быть размещен между тегами <body> </body>.

<?
$date = strtotime("1 January 2014");
$sec=$date - time();
$days=floor(($date - time()) /86400);
$h1=floor(($date - time()) /3600);
$m1=floor(($date - time()) /60);
$hour=floor($sec/60/60 - $days*24);
$hours=floor($sec/60/60);
$min=floor($sec/60 - $hours*60);

switch(substr($days, -1)){
case 1: $o='остался';
break;
case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 0: $o='осталось';
break;}

switch(substr($days, -2)){
case 1: $d='день';
break;
case 2: case 3: case 4: $d='дня';
break;
default: $d='дней';
}

switch(substr($hour, -2)) {
case 1: $h='час';
break;
case 2: case 3: case 4: $h='часа';
break;
default: $h='часов';
}

switch(substr($min, -2)) {
case 1: $m='минута';
break;
case 2: case 3: case 4: $m='минуты';
break;
default:$m='минут';
}
?>
<? if ($sec>0) echo '<strong>До нового года&nbsp;'.$o.':</strong><br/>'; ?>
<strong><? if ($days>0) echo $days.'&nbsp;'.$d; ?>,
<? if ($h1>0) echo '&nbsp;'.$hour.'&nbsp;'.$h; ?>
<? if ($m1>0) echo '&nbsp;и&nbsp;'.$min.'&nbsp;'.$m; ?></strong>
<strong><? if ($sec<0) echo ("С новым годом друзья!!!"); ?></strong>

Настройки скрипта.Строка (2) – указывает число, месяц, год окончания работы таймера.

$date = strtotime(«1 January 2014»); 

Для тех, кто не знает месяца на английском, вот весь список:
Январь – January
Февраль – February
Март – March
Апрель – April
Май – May
Июнь – June
Июль – July
Август – August
Сентябрь – September
Октябрь – October
Ноябрь – November
Декабрь – December

Строка (41) – напишите надпись, до чего осталось время. В данном примере написано так: «До Нового Года».

<? if ($sec>0) echo ‘<strong>До нового года&nbsp;’.$o.’:</strong><br/>’; ?>

Строка (45) – напишите надпись, которая появится посетителям после остановки таймера.

<strong><? if ($sec<0) echo («С новым годом друзья!!!»); ?></strong>

Если вы владеете HTML и CSS стилем, тогда можно придать выводимым цифрам таймера и тексту оригинальный вид.
Это все!Спасибо вам, что вы являетесь постоянными посетителями блога BlogGood.ru

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

Популярные статьи:

  • Как узнать id компьютера
    Дата: 29 марта 2013
    Прокомментировано:90
    просмотров: 325687

  • Размеры форматов листов А0 – А7
    Дата: 23 января 2013
    Прокомментировано:3
    просмотров: 272067

  • Смешные логические загадки с подвохом, отгадки прилагаются
    Дата: 12 ноября 2014
    Прокомментировано:5
    просмотров: 204811

  • Установка windows 7 на ноутбук
    Дата: 18 декабря 2012
    Прокомментировано:169
    просмотров: 185225

  • Как включить или отключить Aero в Windows 7
    Дата: 1 июня 2013
    Прокомментировано:6
    просмотров: 160064

Реализация на JavaScript

Сразу посмотрим, как это можно было сделать на JS.

Простой и понятный код, состоящий из пары функций. Для обновления таймера подписываемся на момент перерисовки браузера с помощью метода window.requestAnimationFrame().

let end;
const now = Date.now;
const timer = document.getElementById("timer");
const duration = 9900;

function displayCountdown() {
  const count = parseInt((end - now()) / 100);
  timer.textContent =
    count > 0 ? (window.requestAnimationFrame(displayCountdown), count) : 0;
}

function start() {
  end = now() + duration;
  window.requestAnimationFrame(displayCountdown);
}

Всего пара блоков в HTML:

<div class="timer-container">
  <p class="timer" id="timer">99</p>
</div>

И элементарные стили для выравнивания:

.timer-container {
  display: flex;
  height: 100vh; 
}

.timer {
  margin: auto;
}

Согласитесь, ровным счётом ничего интересного. Поэтому бросаем эту ерунду и идём писать по-настоящему крутой таймер.

CSS animations

Следующий шаг – анимировать применение трансформаций. Для этого мы используем CSS-анимации.

Самое важное правило, которое вы должны знать, – это . Оно позволяет разбить анимацию на кадры и описать каждый из них в отдельности

@keyframes seconds {
  0% { transform: translateY(0) }
  10% { transform: translateY(-1em) }
  20% { transform: translateY(-2em) }
  30% { transform: translateY(-3em) }
  40% { transform: translateY(-4em) }
  50% { transform: translateY(-5em) }
  60% { transform: translateY(-6em) }
  70% { transform: translateY(-7em) }
  80% { transform: translateY(-8em) }
  90% { 
    transform: translateY(-10em);
    width: 0;
  }
  100% { 
    transform: translateY(-10em);
    width: 0;
  }
}

@keyframes milliseconds {
  0% {transform: translateY(0) }
  10% { transform: translateY(-1em) }
  20% { transform: translateY(-2em) }
  30% { transform: translateY(-3em) }
  40% { transform: translateY(-4em) }
  50% { transform: translateY(-5em) }
  60% { transform: translateY(-6em) }
  70% { transform: translateY(-7em) }
  80% { transform: translateY(-8em) }
  90% { transform: translateY(-9em) }
  100% { transform: translateY(-9em) }
}

Здесь мы создали две анимации – по одной для каждого блока с цифрами.

Обратите внимание на два последних кадра в анимации первого блока. В этот момент там должна отображаться цифра , но она нам не нужна, поэтому скрываем её с помощью 

Чтобы применить анимации, используем краткий синтаксис свойства :

.seconds {
  animation: seconds 10s 1 step-end forwards;
}

.milliseconds {
  animation: milliseconds 1s 10 step-end forwards;
}

Если вы зайдете в панель инструментов разработчика и откроете вкладку с вычисленными значениями (computed), то увидите, что вместо одного свойства  к элементу применились сразу несколько:

animation-name

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

animation-duration

Продолжительность одного цикла анимации. Для первой колонки цифр анимация будет длиться 10 секунд (). Вторая колонка двигается в 10 раз быстрее ().

animation-iteration-count

Количество циклов анимации, которое должно выполниться до ее остановки. Первую колонку нужно прокрутить лишь один раз – от 9 до 0. Вторую – целых 10 раз, по одному на каждое положение первой колонки.

animation-timing-function

Это свойство описывает прогресс анимации в течение одного цикла. Если вы знакомы с кривыми Безье, то можете контролировать его до мельчайших подробностей с помощью функции . Для простых смертных есть несколько готовых значений animation-timing-function, обозначенных ключевыми словами (,  и т.д)

Нам же больше подойдёт значение . Это то же самое, что и .

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

Чтобы лучше разобраться в этой функции, обратитесь к статье Дэна Уилсона Jumps: The New Steps() in Web Animation.

animation-fill-mode

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

Когда анимация остановится, первая цифра будет скрыта, а вторая колонка замрёт на позиции .

Ещё больше о CSS анимациях вы можете узнать в спецификации CSS Animations Level 1.

JavaScript:

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

Также, если вы ни разу не работали с временем на JavaScript, то посмотрите этот сайт.

Логика программы:

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

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

Таким образом у нас должен получится таймер на сайт javascript.

Код программы:

Теперь займёмся кодом программы.

JavaScript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

// Берём элемент для вывода таймера

let timer_show=document.getElementById(«timer»);

 
// Функция для вычисления разности времени

functiondiffSubtract(date1,date2){

returndate2-date1;

}
 
// Массив данных о времени

let end_date={

«full_year»»1970»,// Год

«month»»01»,// Номер месяца

«day»»01»,// День

«hours»»00»,// Час

«minutes»»00»,// Минуты

«seconds»»00″// Секунды

}
 
// Строка для вывода времени

let end_date_str=`${end_date.full_year}-${end_date.month}-${end_date.day}T${end_date.hours}${end_date.minutes}${end_date.seconds}`;

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

Потом идёт функция в которой будем вычитать время, из заданного нами времени, вычитает настоящие время.

Дальше идёт JSON массив или ассоциативный массив, в котором мы как раз и храним данные до куда нам нужно отсчитывать наш таймер, как можете заметить у меня это девятое Мая, потом создаём строку формата , но вместо букв подставляем значения из массива.

Сам таймер:

Теперь пришло время сделать сам таймер в интервале.

JavaScript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

// Запуск интервала таймера

timer=setInterval(function(){

// Получение времени сейчас

let now=newDate();

// Получение заданного времени

let date=newDate(end_date_str);

// Вычисление разницы времени

let ms_left=diffSubtract(now,date);

// Если разница времени меньше или равна нулю

if(ms_left<=){// То

// Выключаем интервал

clearInterval(timer);

// Выводим сообщение об окончание

alert(«Время закончилось»);

}else{// Иначе

// Получаем время зависимую от разницы

let res=newDate(ms_left);

// Делаем строку для вывода

let str_timer=`${res.getUTCFullYear()-1970}.${res.getUTCMonth()}.${res.getUTCDate()-1}${res.getUTCHours()}${res.getUTCMinutes()}${res.getUTCSeconds()}`;

// Выводим время

timer_show.innerHTML=str_timer;

}

},1000)

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

Проверяем, если миллисекунд меньше или равно нулю, то выключаем интервал и выводим сообщение, что время закончилось.

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

  • res.getUTCFullYear() — Получаем год, но в нашем коде вычитаем 1970, это нужно для того, чтобы отсчёт начинался с нулевого года, так как, по умолчанию год начинается 1970 года.
  • res.getUTCMonth() — Просто получаем номер месяца.
  • res.getUTCDate() — Получаем день, но из него вычитаем один, это нужно для того, чтобы не учитывался сегодняшней день, если этого не сделать, то дата всегда будет на один день больше, даже тогда, когда остались считанные минуты.
  • res.getUTCHours() — Получаем час.
  • res.getUTCMinutes() — Получаем минуты.
  • res.getUTCSeconds() — Получаем секунды.

Можете заметить что выводим время по UTC. Дальше выводим эту строку таймер.

Тест программы:

Программу мы делать закончили, теперь покажу как она работает. У меня сейчас 23:19, я ставлю время на 23:20.

JavaScript

1
2
3
4
5
6
7
8

let end_date={

«full_year»»2020»,

«month»»06»,

«day»»07»,

«hours»»23»,

«minutes»»20»,

«seconds»»00»

}

Вот результат, когда таймер закончился.

Как видите оно вывело сообщение в браузере, что время закончилось.

Таким же образом, вы можете выводить сделать счетчик дней до нового года на js, вот как это делается.

JavaScript

1
2
3
4
5
6
7
8

let end_date={

«full_year»»2021»,

«month»»01»,

«day»»01»,

«hours»»00»,

«minutes»»00»,

«seconds»»00»

}

Я написал дату до следующего нового года, в моём случае это новый год в 2021, так как эта стать вышла в 2020 году, вот результат.

Как видите, на момент когда пишется эта статья, осталось до нового года 11 месяцев, 18 дней, 0 часов, 32 минуты и 46 секунд.

Таким образом, вы можете делать до любой даты.

Плагин T Countdown

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

Но мы случайно наткнулись на T Countdown и решили его рассмотреть, потому что он удовлетворяет нашим критериям:

  • Он бесплатный
  • Не требует регистрации и создания аккаунта
  • Неплохой рейтинг 4,5 звезд
  • Более 20,000+ активных установок
  • Использует CSS для анимации вместо Flash

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

Вывод таймера

Теперь, когда у вас есть все данные в правильном формате, вы можете вывести таймер на экран. Метод объекта документа позволяет нацеливать элементы HTML, созданные на шаге 1, соответственно на , , и . Вы можете поместить контент в целевые элементы HTML с помощью свойства innerHTML.

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

document.getElementById("timer-days").innerHTML = days + 
"<span class='label'>DAY(S)</span>";

document.getElementById("timer-hours").innerHTML= ("0" + hours).slice(-2) +
"<span class='label'>HR(S)</span>";

document.getElementById("timer-mins").innerHTML= ("0" + mins).slice(-2) +
"<span class='label'>MIN(S)</span>";

document.getElementById("timer-secs").innerHTML= ("0" + secs).slice(-2) +
"<span class='label'>SEC(S)</span>";

Приведенный выше код добавляет символ «0» к часам, минутам и секундам, когда их значения меньше 10. Хотя в этом нет необходимости, таймер выглядит лучше, когда количество цифр не меняется все время на экране.

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

В коде вам нужно добавить каждую цифру к «0» и вернуть два последних символа с помощью . Таким образом, JavaScript будет добавлять начальный ноль к каждому однозначному числу, но оставит двузначные числа без изменений. Например:

  • (’05’).slice(-2) = ’05’;
  • (‘018′).slice(-2) = ’18’;
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: