首页 > 解决方案 > 如何在两天内设置 flatpickr 时间选择器?

问题描述

我正在使用 flatpickr 来允许时间输入。我想限制从下午 3:00 到凌晨 3:00 的时间输入(所以我想包括下午 4:00、下午 5:00 ... 下午 11:00、下午 12:00、凌晨 1:00。 ..)。

当前代码:

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

我也试过minTime: "15:00", maxTime: "27:00"

但它们都不起作用。flatpickr 的文档

标签: javascriptflatpickr

解决方案


可悲的是,目前没有办法实现你用 nativeconfigminTime, maxTime, minDate, maxDateprops 描述的行为。(我建议在他们的回购中打开一张票: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 的实例。

希望能帮助到你。


推荐阅读