Похоже, что ваш звонок на parseDate
просто должен иметь строгий переключатель .
strict
(необязательно) True для проверки строк даты во время синтаксического анализа (т.е.
предотвращает javascript Date ("rollover") (по умолчанию false). Недействительная дата
строки будут возвращать ноль при разборе.
> Date.parseDate('31/12/2012','m/d/Y')
Sat Jul 12 2014 00:00:00 GMT-0500 (Central Daylight Time)
> Date.parseDate('31/12/2012','m/d/Y', true)
null
Метод parseDate
в DateField является закрытым и недокументированным, а обсуждение , разрешающее строгий анализ даты в ExtJS 3.x, никогда не принесло никаких результатов. Я думаю, что вам лучше всего использовать переопределение, чтобы разрешить строгий анализ даты.
// before you use your DateFields
Ext.override(Ext.form.DateField, {
safeParse : function(value, format) {
if (Date.formatContainsHourInfo(format)) {
// if parse format contains hour information, no DST adjustment is necessary
return Date.parseDate(value, format, this.strict);
} else {
// set time to 12 noon, then clear the time
var parsedDate = Date.parseDate(value + ' ' + this.initTime, format + ' ' + this.initTimeFormat, this.strict);
if (parsedDate) {
return parsedDate.clearTime();
}
}
}
});
//... and in your DateField config:
strict: true,