如何使用 DateTime Picker 修复整个星期的开放时间分钟数?

How to fix opening time minutes for whole week using DateTime Picker?

我想使用 DateTimepicker 将整个星期的商店营业时间设置为 10:30 AM(例如)。使用这段代码我可以限制时间。

var curentDate = new Date();
var lastDate = new Date();
lastDate.setDate(curentDate.getDate() + 6);
$('#txtdate').datetimepicker({
    inline: true,
    sideBySide: true,
    maxDate: lastDate,
    minDate: curentDate,
    enabledHours: HoursArray()
});

我将其设置为 15 分钟增量,但我不确定如何为一周中的所有日子设置分钟数。我还想在每天上午 10:30 之前禁用分钟。

有人可以指导我吗?

我没有看到图书馆提供任何方法来设置每天的默认时间,但您可以使用他们的 events API and date() 方法来控制自己。您可以像这样收听更改事件:

$(document).on('dp.change', manipulateTime);

活动显示日历的new dateoldate。如果日期不同,那么您可以使用 date() 方法更改新日期的时间。

function manipulateTime(e){

  if(!e.date.isSame(e.oldDate, "day")){
    $(e.target).data("DateTimePicker").date(e.date.set({
      'hour' : 10,
      'minute'  : 30
    }));
  }

}

进一步说明


事件触发时 return 三个必要的引用,dateolddatetarget.

调用 DateTimePicker 函数

  • Note according to their documentation you can use their methods like this: All functions are accessed via the data attribute e.g. $('#datetimepicker').data("DateTimePicker").FUNCTION()

使用事件

当您调用 dp.change 事件时。回调函数将 return 对象 e 具有以下可访问属性:

e属性

e = {
    date, //date the picker changed to. Type: moment object (clone)
    oldDate //previous date. Type: moment object (clone) or false in the event of a null,
    target // targeted date picker,
    and more...
}

这是我为解决这两个问题所做的最后一件事

var futureHour  = (new Date(td.date)).getHours();
var futureMin = (new Date(td.date)).getMinutes();

//This is to re-loop time when user tries to select time below 1st pickup time
              if(futureHour <= storeOpenHour && futureMin < storeOpenMinutes){
                $(td.target).data("DateTimePicker").date(td.date.set({
                  'hour' : storeOpenHour,
                  'minute'  : storeOpenMinutes
                }));
                }

                //This is to select 1st pickup time on day change
              if(!td.date.isSame(td.oldDate, "day")){
                $(td.target).data("DateTimePicker").date(td.date.set({
                  'hour' : storeOpenHour,
                  'minute'  : storeOpenMinutes
                }));
              }