JQuery UI Datepicker и Timepicker конфликтуют с minDate и maxDate (Ошибка при разборе строки даты: отсутствует номер в позиции 0)

Я использую Rails 3.2.11 и я пытаюсь использовать как jQuery UI Datepicker, так и Timepicker, однако при попытке использовать minDate а также maxDate свойства Datepicker.

Мой взгляд на одну страницу (в HAML), выглядит так:

.field_section
  = f.label :date, "Date"
  %br
  = f.datepicker :date, :minDate => "-10y", :maxDate => "+1y", :dateFormat => "yy-mm-dd",
    :constrainInput => true, :showOtherMonths => true, :size => 10

я имею jQuery UI 1.10 и все работает отлично.

Тем не менее, в совершенно отдельном виде, мне также нужен таймер, поэтому я включаю jquery-ui-timepicker-addon.js файл (версия 1.20) в моем application.js

Порядок включения:

  1. jQuery (1.8.3)
  2. JQuery UJS JQuery UI (в частности, автозаполнение, DatePicker и слайдер)
  3. Timepicker

Теперь загрузка первого представления (в котором есть только указатель даты, а не указатель времени) выдает мне следующую ошибку в консоли Chrome JS, когда я нажимаю на вход DatePicker:

Error parsing the date string: Missing number at position 0
date string = -10y
date format = yy-mm-dd
Error parsing the date string: Missing number at position 0
date string = +1y
date format = yy-mm-dd 

Что повторяется еще 5 или около того раз. Ошибки указывают на jquery-ui-timepicker-addon.js:1912 что бесполезно просто:

$.timepicker.log = function(err){
    if(window.console)
        console.log(err);
};

Странно, если я удалю minDate а также maxDate атрибуты с моей точки зрения, ошибки уходят - но я хочу использовать эти параметры. Есть идеи, что происходит?

Спасибо

Обновление: я заметил, если я прохожу minDate а также maxDate как жестко закодированные строки, т.е.

:minDate => "2000-01-01", :maxDate => "2014-01-01"

ошибки уходят. Я предполагаю, что это означает, что есть ошибка с dateFormat (где-то..?)

1 ответ

Решение

Так что, похоже, Timepicker не понимает относительные даты. Я думаю Timepicker пытается всегда переопределить Datepicker. С :minDate а также :maxDate установить относительные значения (т. е. +1y) Timepicker видит несоответствие формата между +1y а также yy-mm-dd например - кажется, что сначала не +1y объекту Date с форматом yy-mm-dd,

Решение для меня заключалось в том, чтобы в объект Date поместились детали:

:minDate => Date.today - 10.years, :maxDate => Date.today + 1.years

Что на самом деле не так хорошо, как +1y

Проблема поднята на Github

Другие вопросы по тегам