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

Почему динамические раскрывающиеся списки времени?

Динамические раскрывающиеся списки времени полезны во многих ситуациях:

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

Решение динамической синхронизации с использованием JavaScript

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

Вот что он предлагает:

  • Гибкие временные рамки: Определите время начала и окончания для опций раскрывающегося меню. Вы даже можете использовать текущее время для динамического запуска или завершения опций в текущий момент.
  • Настраиваемые интервалы: Установите интервалы между вариантами времени – каждые 15 минут, 30 минут или любую другую продолжительность.
  • Различные форматы отображения: Управляйте отображением времени, выбирая между 12-часовым или 24-часовым форматом с индикаторами AM/PM по мере необходимости.
  • Начните сейчас: Настройте раскрывающееся меню так, чтобы оно начиналось с текущего времени, что делает его идеальным для сценариев планирования или бронирования.
  • Покрытие в течение всего дня: Если конкретный диапазон времени не указан, в раскрывающемся меню по умолчанию будут указаны параметры для всего дня.
  • Умная обработка заготовок: Если на основе предоставленных параметров невозможно создать допустимые параметры времени, раскрывающийся список будет автоматически отключен, чтобы не запутать пользователя.
ЧИТАТЬ  Польза практики семейной медитации для здоровья и благополучия – Мама не такая, как другие… или почти

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

Примеры динамического времени

  • Пример 1: Полный день, 30-минутные интервалы, 24-часовой формат.
  • Пример 2: Начать сейчас, закончить в 20:00, интервал 15 минут, формат 12 часов.
  • Пример 3: Начало в 10:00, окончание сейчас, интервал 1 час, 24-часовой формат
  • Пример 4: Начать с 14:00, окончание в 18:00, интервал 10 минут, 12-часовой формат строчными буквами AM/PM
  • Пример 5: Начните сейчас до полуночи с интервалом в 30 минут.

Динамическое время JavaScript

Вот полный код JavaScript для создания динамических раскрывающихся списков по времени:

function getTime(from, to, interval, startNow, format, timeSelect) { 
  var select="";
  var now = new Date();
  var currentHour = now.getHours();
  var currentMinute = now.getMinutes();
  var optionsCount = 0; 

  if (from === "now") {
    from = currentHour;
  } else if (from === "") {
    from = 0; 
  } else {
    from = parseInt(from);
  }

  if (to === "now") {
    to = currentHour;
  } else if (to === "") {
    to = 23; 
  } else {
    to = parseInt(to);
  }

  if (startNow) {
    if (from  12 ? hour - 12 : hour;
    hour12 = hour12 === 0 ? 12 : hour12; // Change 0 to 12 for 12 AM
    var ampm = hour >= 12 ? 'PM' : 'AM';
    for (var min = 0; min ' + hour12 + ':' + min0 + ' ' + ampm + '';
      optionsCount++; 
    }
  }

  timeSelect.innerHTML = select;
  if (optionsCount = 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes 

Разделение кода

Теперь давайте разберем код для наших читателей:

1. HTML-структура:

  • Мы используем