如何使用 Bootstrap4 日期时间选择器允许时间间隔

How to allow a Time Interval with Bootstrap4 Date Time Picker

我需要根据此规则启用小时数:从现在开始 1 小时,允许范围为 8 小时。

E.G,现在说是 13:00。所以我的选择器应该只允许 14:00 - 22:00 之间的小时数。如果当前时间是 21:00,它应该允许 22:00 - 06:00.

这是我的日期选择器的代码:

const datePicker = () => {
  $('.datetimepicker').datetimepicker({
    format: 'LT',
    locale: 'PT-BR',
    icons: {
      up: "fa fa-chevron-up",
      down: "fa fa-chevron-down",
    },
    stepping: 15,
  });
};

我创建了一些辅助函数来获取边缘。

const hourStart = () => {
  const start = new Date();
  start.setHours(start.getHours() + 1);
  return start;
}

const hourFinish = () => {
  const finish = new Date()
  finish.setHours(hourStart().getHours() + 8);
  return finish;
}

我在 documentation which allows set the enabled time interval, only the exact oposite Disable Time Intervals 中找不到任何内容。

也许使用 Enabled Hours 和某种循环列表?

还有其他方法可以使用此插件实现预期的行为吗?

您需要在时间选择器上设置最小值和最大值

const minHours = new Date().getHours() + 1;
const maxHours = new Date().getHours() + 8;

考虑使用 getTime 而不是 getHours:

const hadd = (d,h) => d.getTime()+(h*3600000);
const date0 = new Date('June 8, 2020 21:24:00');
console.log(date0);
console.log(new Date(hadd(date0,1)));
console.log(new Date(hadd(date0,9)));

应打印(使用您自己的时区):

// Mon Jun 08 2020 21:24:00 GMT+0200 (Central European Summer Time)
// Mon Jun 08 2020 22:24:00 GMT+0200 (Central European Summer Time)
// Tue Jun 09 2020 06:24:00 GMT+0200 (Central European Summer Time)