Ограничить календарный диапазон дат на один год вперед? - PullRequest
1 голос
/ 19 апреля 2019

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

Как мне отредактировать существующий код, чтобы включить эту функцию?

      $(function () {
    var today = new Date();
    var tomorrow = new Date();
    tomorrow.setDate(tomorrow.getDate() + 1);

    arriving = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
    departing = tomorrow.getFullYear() + '-' + (tomorrow.getMonth() + 1) + '-' + tomorrow.getDate();

    $('input#datepicker').daterangepicker({
        autoApply: true,
        startDate: today, // preselect dates
        endDate: tomorrow, locale: {
            format: "DD MMM YYYY"
        },
        minDate: today
    }, function (start, end, label) {
        if (start.isSame(end, 'day')) {
            end.add(1, 'days');
            $('#datepicker').data('daterangepicker').setEndDate(end);
        }
        arriving = start.format('YYYY-MM-DD');
        departing = end.format('YYYY-MM-DD');

    });

});

1 Ответ

0 голосов
/ 19 апреля 2019

Добро пожаловать в stackoverflow.Вы можете установить maxDate на один год с сегодняшнего дня.Вы можете попробовать следующее

$(function () {
        var today = new Date();
        var tomorrow = new Date();
        tomorrow.setDate(tomorrow.getDate() + 1);

        arriving = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
        departing = tomorrow.getFullYear() + '-' + (tomorrow.getMonth() + 1) + '-' + tomorrow.getDate();

        $('input#datepicker').daterangepicker({
            autoApply: true,
            startDate: today, // preselect dates
            endDate: tomorrow, locale: {
                format: "DD MMM YYYY"
            },
            minDate: today,
            maxDate: new Date(new Date().setFullYear(new Date().getFullYear() + 1))
        }, function (start, end, label) {
            if (start.isSame(end, 'day')) {
                end.add(1, 'days');
                $('#datepicker').data('daterangepicker').setEndDate(end);
            }
            arriving = start.format('YYYY-MM-DD');
            departing = end.format('YYYY-MM-DD');

        });
...