timepicker 将最短时间递增 1 小时

timepicker increment min time by 1 hour

在我的应用中,用户可以预约从 6:00 AM 到 8:00 PM 的时间。我正在使用 timepicker 来做到这一点。我正在设置 minTime: 6:00 AMmaxTime : 8:00 PM。这可行,但实际上我想在用户当前时间在早上 6 点到晚上 7 点之间时将 minTime 增加 1 小时。如果是 6:01 AM,用户应该不能选择 6AM,而应该建议 7AM。在7:01PM,唯一剩下的选择时间应该是晚上 8 点。

//current date
var dateToday = new Date(); 
//get time in US format
//console.log(dateToday.toLocaleTimeString('en-US'));
var timeNow = dateToday.toLocaleTimeString('en-US');
// expected output: 1:15:30 AM
//get time in 12H format
//console.log(dateToday.toLocaleTimeString('it-IT'));
// expected output: 01:15:30

if(timeNow > '6:00:00 AM'&& timeNow < '8:00:00 PM'){
  var minTime = timeNow + 1:00:00;
}else{
  var mintime = '6:00am';
}

//time picker
$(function () {
$('.timepicker').timepicker({
timeFormat: 'h:mm p',
interval: 60,
minTime: minTime,
maxTime: '8:00pm',
dynamic: false,
dropdown: true,
scrollbar: true

});
});

适合我。

//date picker
var dateToday = new Date(); 
//get time in US format
//console.log(dateToday.toLocaleTimeString('en-US'));
var timeNow = dateToday.toLocaleTimeString('en-US');
// expected output: 1:15:30 AM
//get time in 12H format
//console.log(dateToday.toLocaleTimeString('it-IT'));
// expected output: 01:15:30


if(timeNow > '4:00:00 AM'&& timeNow < '8:00:00 PM'){

//add two hours
var dtndate = new Date(); 
dtndate.setHours(dtndate.getHours() + 2);
var minTime = dtndate.toLocaleTimeString('en-US');

}else{
  var minTime = '6:00am';
}


//time picker
$(function () {
$('.timepicker').timepicker({
timeFormat: 'h:mm p',
interval: 60,
minTime: minTime,
maxTime: '8:00pm',
dynamic: false,
dropdown: true,
scrollbar: true

});
});

使用 new Date().getHours() 获取小时数。您不能对字符串使用 <>。这意味着您需要将它们转换为数字。由于您只需要小时进行比较,因此只需获取小时数并进行比较即可。像下面这样:

var today = new Date();
var hr = today.getHours();
var min = today.getMinutes();
var time = hr >= 12 ? "pm" : "am";

if(hr > 6 && hr < 8) {
  minTime = hr + 1;
}
else {
  minTime = hr
}
minTime = `${minTime > 12 ? minTime - 12 : minTime}:${min}${time}`

//time picker
$(function () {
$('.timepicker').timepicker({
timeFormat: 'h:mm p',
interval: 60,
minTime: minTime,
maxTime: '8:00pm',
dynamic: false,
dropdown: true,
scrollbar: true
});