В моей CakePHP-1.2 приложения, я использую формат даты 01-Jan-2012проверки Дата не работает формат даты «d-M-Y»
Какие правила проверки даты я должен использовать, чтобы проверить это?
Я попробовал массив ('date', 'dMy'). Но это не работает.
В моей CakePHP-1.2 приложения, я использую формат даты 01-Jan-2012проверки Дата не работает формат даты «d-M-Y»
Какие правила проверки даты я должен использовать, чтобы проверить это?
Я попробовал массив ('date', 'dMy'). Но это не работает.
Прочитав книгу, вы можете увидеть, что вы не можете использовать разделители в поле проверки даты для выбранного алгоритма. Вам нужно будет создать собственное правило проверки. Вы можете сделать это с помощью настраиваемого Regular Expression правила:
'/^((31(?!\\ (Feb(ruary)?|Apr(il)?|June?|(Sep(?=\\b|t)t?|Nov)(ember)?)))|((30|29)(?!\\ Feb(ruary)?))|(29(?=\\ Feb(ruary)?\\ (((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\\d|2[0-8])\\-(Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\\b|t)t?|Nov|Dec)(ember)?)\\-((1[6-9]|[2-9]\\d)\\d{2})$/';
Примечания: Это правило представляет собой модифицированную версию консервированных те, что торт поставляется с.
Итак, вы хотели бы сделать:
var $validate = array(
'born' => array(
'rule' => '/^((31(?!\\ (Feb(ruary)?|Apr(il)?|June?|(Sep(?=\\b|t)t?|Nov)(ember)?)))|((30|29)(?!\\ Feb(ruary)?))|(29(?=\\ Feb(ruary)?\\ (((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\\d|2[0-8])\\-(Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\\b|t)t?|Nov|Dec)(ember)?)\\-((1[6-9]|[2-9]\\d)\\d{2})$/i',
'message' => 'Enter a valid date in Day-Mon-Year format.'
)
);
Примечание: «я» в конце регулярного выражения, это просто означает, что это Case Insensitive
матч. Это будет соответствовать 24-дек-2006, 24-DEC-2006 и 24-Dec-2006. Удалите его, если вы хотите принять совпадение с регистром.
Теперь вы можете просто запустить это правило против соответствующего поля, и вам должно быть хорошо идти.
Удачи.
Обратите внимание, что это также будет принято 21 января 2006 года. Я просто использовал законсервированное правило, потому что это тот, который вы пытались использовать, с моими собственными изменениями. Если вы не хотите соответствовать этим, дайте мне знать, и я подкорректирую. –