如何使用 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)
我需要根据此规则启用小时数:从现在开始 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)