Cakephp 日期验证不适用于日期格式';d-M-Y';

Cakephp 日期验证不适用于日期格式';d-M-Y';,cakephp,date-format,cakephp-1.2,Cakephp,Date Format,Cakephp 1.2,在我的CakePHP-1.2应用程序中,我使用的是日期格式01-Jan-2012 我应该使用哪个日期验证规则来测试它 我尝试了数组('date','dMy')。但是它不起作用。通过阅读本书,您可以看到您不能在所选算法的日期验证字段中使用分隔符。您需要创建一个自定义验证规则。可以使用自定义正则表达式规则执行此操作: (31(?)月(2月(二月(农村)年)月(日)月(日)月(日)月(日)月(月(日)月(月)日(月(月)日(月)日(月)日(日)日(日)月(日)月(日)月(日)月(月(日)月(日)月(日

在我的CakePHP-1.2应用程序中,我使用的是日期格式01-Jan-2012

我应该使用哪个日期验证规则来测试它


我尝试了数组('date','dMy')。但是它不起作用。

通过阅读本书,您可以看到您不能在所选算法的日期验证字段中使用分隔符。您需要创建一个自定义验证规则。可以使用自定义正则表达式规则执行此操作:

(31(?)月(2月(二月(农村)年)月(日)月(日)月(日)月(日)月(月(日)月(月)日(月(月)日(月)日(月)日(日)日(日)月(日)月(日)月(日)月(月(日)月(日)月(日)月(日)月(月)日)日(月(月)日(月)日)日(日)日(日)日(日(日)日(日)日(日(日)本)为为为为第124(日)日(日)日(日)t(日)t)t(日)t(日)t(日)t)t)t(日)t(日(日(日)t(日)t(日(日(日)t(日(日)t(日(日)t(日)t(日(日)t(日(日(日)第124周四(日)(月)日)第1月(uary)2月(ruary)4月(il)8月(ust)10月(ober)9月11月12日(余烬)\-((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.'
    )
);
注意:正则表达式末尾的“i”表示它是一个不区分大小写的匹配。这将与2006年12月24日、2006年12月24日和2006年12月24日相同。如果要接受区分大小写的匹配,请将其删除

现在,您可以简单地针对所讨论的字段运行该规则,您应该可以开始了


祝你好运。

请注意,这也适用于2006年1月21日。我只是简单地使用了罐头规则,因为这是一个你试图使用的,我自己的修改。如果你不想匹配这些,让我知道,我会调整。