Сгенерировать диапазон часов для datetimepicker

271
09 января 2018, 15:55

Использую популярный плагин datetimepicker для выбора даты и времени. В нем есть метод allowTimes, где указываются разрешенные к выбору часы, к примеру:

jQuery(".datetimepicker").datetimepicker({
    timepicker: true,
    allowTimes: [
        '12:00', '12:30', '13:00'
    ]
});

Как реализовать автоматом список разрешенных к выбору часов из указанного пользователем диапазона, к примеру 12:30 - 14:00 – где массив, будет следующим ['12:30', '13:00', '13:30', '14:00']?

Answer 1

Используя библиотеку Moment.js можно так. Сама функция add( ).

var timeStart = '12:30'; 
var timeEnd = '14:00'; 
 
var allowTimes = []; 
while (timeStart !== timeEnd) { 
  allowTimes.push(timeStart); 
 
  timeStart = moment(timeStart, 'HH:mm').add(30,      'm').format('HH:mm'); 
} 
allowTimes.push(timeEnd); 
     
console.log(allowTimes);
<script src="https://unpkg.com/moment@2.20.1/moment.js"></script>

Answer 2

Не знаю какую версию вы использовали? Или что то еще, но вот посмотрите здесь. Все именно так как вы хотели.

$(document).ready(function(){ 
  $(".datetimepicker").datetimepicker({ 
      timepicker: true, 
      allowTimes: [ 
          '12:00', '12:30', '13:00','13:30','14:00', 
'14:30', '15:00', '15:30', '16:00',   ] 
  }); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.16/jquery.datetimepicker.full.js"></script> 
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.16/jquery.datetimepicker.css"> 
<input type="text" class="datetimepicker" />

READ ALSO
Как сделать паузу/pause в Selenium? Selenium/JavaScript

Как сделать паузу/pause в Selenium? Selenium/JavaScript

Как через код реализовать приостановку выполнения кода? Искал решения в Интернете, но зарубежные форумы дают решение, подразумевая "pause" как...

241
Возникает ошибка в jQuery

Возникает ошибка в jQuery

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

328