Проблемы с jQuery DatePicker, устанавливающим второй DatePicker - PullRequest
2 голосов
/ 11 августа 2011

Итак, мне удалось закодировать это до сих пор. Что должно произойти, так это то, что пользователь выбирает 'arrdate', а затем код автоматически устанавливает endDate для 'depdate' на 1 день позже. Однако проблема здесь в том, что формат 'arrdate' равен non-US, т.е. dd/mm/yy, но код, который должен выдвинуть его один день спустя, выбирает его как mm/dd/yy.

Это выталкивает все из строя, например, выбор сегодня 11/08/2011 в arrdate устанавливает значение depdate на 09/11/2011.

Я пробовал несколько способов безрезультатно - кто-нибудь, кто может сказать мне, где я могу установить формат лучше? Спасибо!

$(function() {
    $( "#arrdate" ).datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy',
        minDate: 0 ,
        onSelect: function(date){

            var selectedDate = new Date(date);
            var msecsInADay = 86400000;
            var endDate = new Date(selectedDate.getTime() + msecsInADay);


            $("#depdate").datepicker( "option", "minDate", endDate );
        }
    });
    $( "#depdate" ).datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy'
    });
});

1 Ответ

0 голосов
/ 12 августа 2011

У меня вчера была такая же проблема. Так что мне пришлось сделать обходной путь, прежде чем начать настройку даты + 1 день, переключите ее:

//Convert Date from dd/mm/yy to mm/dd/yy
var iDay = date.substring(0,2);
var iMth = date.substring(3,5);
var iYr =  date.substring(8,11);

var date = iMth+"/"+iDay+"/"+iYr;
var selectedDate = new Date(date);

Возможно, вам придется сделать что-то похожее, чтобы преобразовать его обратно в дд / мм / гг

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...