所以我正在使用 jQuery DateTimePicker,目前我有以下设置:
jQuery(document).ready(function($) {
jQuery.datetimepicker.setLocale('en');
jQuery('#datepicker').datetimepicker({
beforeShowDay: $.datepicker.noWeekends,
format: 'd/m/Y H:i a',
minDate: 0,
minTime: 0,
step: "30",
allowTimes:[
'09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00', '12:30',
'13:00', '13:30', '14:00', '14:30', '15:00', '15:30', '16:00', '16:30', '17:00'
]
});
});
如您所见,您无法选择过去的日期或时间,并且时间选择仅限于工作日晚上 9-5 点...
我遇到的问题是,如果我只选择今天的日期,它会将其放入带有当前时间戳的日期中,我需要以某种方式将其四舍五入到下一个 30 分钟的增量,或者进行所需的时间选择以及日期。
有什么想法吗?
最佳答案
好吧,我最终找到了解决方案,这是更新的代码:
我还做了一些进一步的更改,因此如果今天的日期在 allowTimes
之外,则无法选择。
由于它也设置了当前时间,因此我也对其进行了设置,因此如果您选择将来的日期,它会将时间设置为“09:00”,这是 中的第一个可用时间允许时间
:
var checkPastTime = function(currentDateTime) {
var d = new Date();
var todayDate = d.getDate();
if (currentDateTime.getDate() == todayDate) { // check today date
this.setOptions({
minTime: d.getHours() + '1:00' //here pass current time hour ;
});
} else
this.setOptions({
minTime: false
});
if(currentDateTime.getDate() == todayDate && d.getHours() >= 17) {
this.setOptions({
minDate:'+1970/01/02',
minTime: '09:00',
defaultTime: '09:00'
});
}
};
jQuery(document).ready(function($) {
jQuery.datetimepicker.setLocale('en');
var d = new Date();
var todayDate = d.getDate();
if(todayDate == d.getDay() + 1) {
var ahead = d.getHours() + 1;
} else {
var ahead = '9';
}
jQuery('#datepicker').datetimepicker({
//beforeShowDay: $.datepicker.noWeekends,
format: 'd/m/Y H:i a',
minDate: 0,
onChangeDateTime: checkPastTime,
onShow: checkPastTime,
defaultTime: ahead + ':00',
step: "30",
allowTimes:[
'09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00', '12:30',
'13:00', '13:30', '14:00', '14:30', '15:00', '15:30', '16:00', '16:30', '17:00'
]
});
});
关于jQuery - DateTimePicker - 制作删除当前时间所需的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64700663/