Как установить Flatpickr Time Picker с ограничениями на два дня? - PullRequest
1 голос
/ 10 июня 2019

Я использую flatpickr для учета времени.Я хочу ограничить ввод времени с 15:00 до 15:00 (поэтому я хочу включить 16:00, 17:00 ... 23:00, 12:00, 1:00 AM...).

Текущий код:

flatpickr({enableTime: true, noCalendar: true, dateFormat: "H:i", minTime: "15:00", maxTime: "3:00"})

Я также пытался minTime: "15:00", maxTime: "27:00"

Но ни один из них не работает. Документация flatpickr.

1 Ответ

1 голос
/ 11 июня 2019

К сожалению, в настоящий момент нет способа достичь поведения, которое вы описываете, с помощью нативных реквизитов config и minTime, maxTime, minDate, maxDate. (Я бы порекомендовал открыть билет в своем репо: flatpickr repo )

Однако вы можете использовать этот обходной путь:

const instanceOfPickr = flatpickr("#works", {
      onValueUpdate: function(obj, updatedTime) {
        if ((updatedTime > "03:00") && (updatedTime < "15:00")) {
          instanceOfPickr.setDate(new Date("June 10, 2019 15:00:00"));
        }
      },
      enableTime: true,
      noCalendar: true,
      time_24hr: true,
    });

Это довольно неуклюже, но это сделает работу.

Единственная проблема с ним - если вы нажмете decrease arrow в часы или минуты, когда время установлено на 15:00, оно останется там. Если вы хотите добавить к этим стрелкам поведение decrease, чтобы уменьшить время до 03:00 - вы можете специально искать их в DOM и назначить setDate(new Date("June 10, 2019 03:00:00") экземпляру вашего TimePicker.

Надеюсь, это поможет.

...