DateTimePicker не может отключить прошлое время? - PullRequest
0 голосов
/ 03 мая 2019

Я хочу отключить прошедшее время и дату на основе моего выбора даты начала и окончания.Я смог отключить свидание, но оно не сработает вовремя.

Пример:

Start Date  - 24-May-2019 01:30 PM
End Date    - 24-May-2019 01:00 PM < suppose to not be able to choose an earlier time

Я пробовал эту функцию, но, хотя отключение прошлой даты работает нормально, все еще не может в течение времени

onSelect: function (selectedDate) {
    var endYear = $(this).datetimepicker('getFullYear');
    var endMonth = $(this).datetimepicker('getMonth');
    var endDay = $(this).datetimepicker('getDate');
    var endHour = $(this).datetimepicker('getHours');
    var endMinutes = $(this).datetimepicker('getMinutes');
    var endSeconds = $(this).datetimepicker('getSeconds');
    ("#endDate").datetimepicker("option", "minDate", new Date(endYear, endMonth, endDay, endHour, endMinutes, endSeconds));
}

onSelect: function (selectedDate) {
    var endYear = $(this).datetimepicker('getFullYear');
    var endMonth = $(this).datetimepicker('getMonth');
    var endDay = $(this).datetimepicker('getDate');
    var endHour = $(this).datetimepicker('getHours');
    var endMinutes = $(this).datetimepicker('getMinutes');
    var endSeconds = $(this).datetimepicker('getSeconds');
    $("#startDate").datetimepicker("option", "maxDate", new Date(endYear, endMonth, endDay, endHour, endMinutes, endSeconds));
}

также пробовал эту функцию ниже, но также не работает

onSelect: function (selectedDate) {
    $("#endDate").datetimepicker("option", "minDate", selectedDate);
    $("#endDate").datetimepicker("option", "minTime", selectedDate);
}

onSelect: function (selectedDate) {
    $("#startDate").datetimepicker("option", "maxDate", selectedDate);
    $("#startDate").datetimepicker("option", "maxTime", selectedDate);
}

текущий рабочий код (который отключает только прошлую дату):
для даты начала

onSelect: function (selectedDate) {
  $("#endDate").datetimepicker("option", "minDate", selectedDate);
}



РАБОЧИЙ КОД
добавлена ​​функция onClose для считывания времени
, например:
если пользователь выбирает дату начала 05-мая-2019 5:00 AM и дату окончания 05-мая-2019 3:00 AM
значение даты начала автоматически обновляется до 05 мая 2019 г. 3:00

для даты окончания

onSelect: function (selectedDate) {
  $("#startDate").datetimepicker("option", "maxDate", selectedDate);
}

для даты начала

onClose: function (dateText, inst) {
    var startDateSelect = $('#startDate');
    var endDateSelect = $('#endDate');

    if (endDateSelect.val() != '') {
        var sDate = startDateSelect.datetimepicker('getDate');
        var eDate = endDateSelect.datetimepicker('getDate');
        if (sDate > eDate)
            endDateSelect.datetimepicker('setDate', sDate);
    }
    else {
        endDateSelect.val(dateText);
    }
},
onSelect: function (selectedDate) {
    $("#endDate").datetimepicker("option", "minDate", selectedDate);
}            

для даты окончания

 onClose: function (dateText, inst) {
    var startDateSelect = $('#startDate');
    var endDateSelect = $('#endDate');

    if (startDateSelect.val() != '') {
        var sDate = startDateSelect.datetimepicker('getDate');
        var eDate = endDateSelect.datetimepicker('getDate');
        if (sDate > eDate)
            startDateSelect.datetimepicker('setDate', eDate);
    }
    else {
        startDateSelect.val(dateText);
    }
},
onSelect: function (selectedDate) {
    $("#startDate").datetimepicker("option", "maxDate", selectedDate);
}

1 Ответ

0 голосов
/ 03 мая 2019

Для использования jquery DateTimePicker, есть опция для установки минимального / максимального времени.

используйте minTime или maxTime для раз используйте minDate или maxDate для дат

Рабочий пример: https://jsfiddle.net/qy48so6d/1/

$('#datetimepicker').datetimepicker({
    minDate:'2019/05/01',
    maxDate:'2019/05/02',
    minTime:'01:00',
    maxTime:'02:00'
  });

Ссылка: https://xdsoft.net/jqplugins/datetimepicker/#minTime


Если вы используете https://trentrichardson.com/examples/timepicker/

Вы можете попробовать это

$("#endDate").datetimepicker("option", "minDateTime", selectedDate);
// or
$("#endDate").datetimepicker("option", "minTime", '8:00 am');

Пример

$(document).ready(function() {
  var startDateTextbox = $('#startDate')
  var endDateTextbox = $('#endDate')
    startDateTextbox.datetimepicker({
    onSelect: function(selectedDate) {
            endDateTextbox.datetimepicker('option', 'minDate', startDateTextbox.datetimepicker('getDate'))
      endDateTextbox.datetimepicker('option', 'minTime', '8:00 am')
      endDateTextbox.datetimepicker('option', 'maxTime', '9:00 am')
    }
  });
  endDateTextbox.datetimepicker({
    minTime: '8:00 am'
  });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...