jQuery - DateTimePicker - 制作删除当前时间所需的时间

标签 jquery datetimepicker

所以我正在使用 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/

相关文章:

javascript - Bootstrap Datetimepicker 不显示为空

javascript - datetimepicker中的约会释放/锁定控制

JQuery DateTimePicker - 不遵守 hourMin 选项

javascript - 单击下拉列表项时不显示 Jquery 警报

javascript - bootstrap 3 datetimepicker((eonasdan)) - e.date 在 "dp.show"上未定义

c# - 从 DateTimePicker 中删除日期和月份之前的空格

jquery - 使div向下滑动而不向下推内容

javascript - 单击按钮时在 Angular 过滤器之间切换

javascript - 如何从js文件中的jquery函数调用HTML文件?

Jquery 关闭对话框并删除 div