2016-05-25 5 views
0

У меня есть два datepickers с dateFromat собственности, и я получаю следующие значения в отладчике:JqueryUI DatePicker возвращает неверную дату на DateFormat

dateText = "27.05.2016"

begin = Invalid Date {}

d=NaN

m=NaN

y=NaN

Есть ли способ получить этот формат даты для моего примера? Я думаю, что функция Date() не может преобразовать датировать значение этого формата даты ...

Пример без dateFormat: http://jsbin.com/yuxaliqoba/edit?html,output

Пример с dateFormat: http://jsbin.com/hihidihexo/edit?html,output

<input class="datepicker begin" type="text" /> 
    <input class="datepicker end" type="text"/> 
    <script> 
    $(function() { 
     $(".datepicker.begin").datepicker({ 
      minDate: '+2d', 
      maxDate: '+2y', 
      dateFormat: 'dd.mm.yy', 
      onSelect: function(dateText, inst) { 
       // Resolve the current date 
       var begin = new Date($(this).val()); 
       var d = begin.getDate(); 
       var m = begin.getMonth(); 
       var y = begin.getFullYear(); 
       // Update your target date 
       $(".datepicker.end").datepicker('setDate', new Date(y, m, d+2)); 
       $(".datepicker.end").datepicker("option", "minDate", d - 10); 
      } 
     }); 
     $(".datepicker.end").datepicker({ 
      dateFormat: 'dd.mm.yy', 
      minDate: '+4d', 
      maxDate: '+2y' 
     }); 
    }); 
    </script> 

ответ

1

Ваш вопрос связан с тот факт, что 27.05.2016 является недействительной датой. Как вы можете видеть в этой скрипке.

https://jsfiddle.net/mp64p6Lw/2/

Инстанцирования нового объекта даты с 27.05.2016 возвращает "Invalid Date". Таким образом, призывы get *() не вернут то, что вы ожидаете.

Я рекомендую изменить формат даты в формате даты ISO 8601, чтобы ваши данные были более стабильными.

var dateISO = new Date('2016-05-27'); 

Вы должны были бы изменить dd.mm.yy к yy-mm-dd когда вы создать экземпляр DatePicker.

Смежные вопросы