Как разрешить maxDate и minDate быть равными на Bootstrap DateTimePicker? - PullRequest
0 голосов
/ 15 января 2020

Чтобы создать отчет, мне нужно иметь возможность выбрать одну и ту же дату начала и окончания.
Я могу это сделать, но только в первый раз, когда выбираю maxDate.
После этого я не могу выбрать то же значение minDate, что и maxDate.

Например:
Открывается браузер.
Я выбираю 01/01/2020 в качестве даты начала (minDate).
Я выбираю 01/01/2020 в качестве даты окончания (maxDate).
Я изменяю дату окончания на 02/01 / 2020.
Теперь я не могу снова выбрать '01 / 01/2020 'в качестве даты окончания.

Мне нужно иметь возможность выбрать ту же момент для minDate и maxDate
Я не могу найти решение для этого в документации DateTimePicker

Я попытался установить некоторые значения для события изменения:

$(".datetimepickerTo").on("dp.change", function (e) {
    $('.datetimepickerFrom').data("DateTimePicker").maxDate(e.date);
});

А на селекторе выбора даты и времени:

$('.datetimepickerTo').datetimepicker({
    useCurrent: false
});

1 Ответ

0 голосов
/ 15 января 2020

Оказывается, это была проблема формата даты.
По какой-то причине при выборе даты в первый раз вывод даты был:

'Ср 01 Янв 2020 16:39:34 GMT-0300 (Horário Padrão de Brasília) '.

Где' 16: 39: 34 'было фактическим временем, когда я выбрал дату.

Хотя во второй раз при выборе получилось:

'Ср 01 января 2020 00:00:00 GMT-0300 (Horário Padrão de Brasília)'

Создание двух разных дат.

Мой подход состоял в том, чтобы отформатировать дату в нужный мне формат. Используя эту функцию:

function formatDate(date) {
    var months = [
        "1", "2", "3",
        "4", "5", "6",
        "7", "8", "9",
        "10", "11", "12"
    ];

    var day = date.getDate();
    var monthIndex = date.getMonth();
    var year = date.getFullYear();

    return day + '/' + months[monthIndex] + '/' + year;
}

Где вывод был:

01/01/2020

Тогда мне просто нужно было отформатировать дату функции minDate () и maxDate ():

$(".datetimepickerFrom").datetimepicker().on("dp.change", function (e) {
    const formattedDate = formatDate(e.date.toDate())
    $('.datetimepickerTo').data("DateTimePicker").minDate(formattedDate);
});

$(".datetimepickerTo").datetimepicker().on("dp.change", function (e) {
    const formattedDate = formatDate(e.date.toDate())
    $('.datetimepickerFrom').data("DateTimePicker").maxDate(formattedDate);
});
...