2011-10-04 73 views
0

什麼我想要做的是驗證如果年齡不低於18歲或超過33的Kohana 3.2驗證在生日

public function validate($arr) { 
    return Validation::factory($arr) 
     ->rule('username', 'not_empty') 
     ->rule('last_name', 'not_empty') 
     ->rule('first_name', 'not_empty') 
     ->rule('email', 'not_empty') 
     ->rule('email', 'email_domain') 
     ->rule('phone_num', 'not_empty') 
     ->rule('birthdate', 'not_empty') 
     ->rule('birthdate', array($this, 'check_birthday'));  
} 

public function check_birthday() 
{ 
    check if age is not under 18 or over 33 
    return boolean; 

} 

回答

0

您可以使用Kohana_Date常量,是這樣的:

return ($date < (time() - 18 * Date::YEAR)) AND ($date > (time() - 33 * Date::YEAR));

return Valid::range($date, time() - 33 * Date::YEAR, time() - 18 * Date::YEAR);

如果需要,可將日期格式轉換爲時間戳strtotime

+0

好吧,它的工作btw如何添加一個錯誤消息,如果它低於18或以上33? – GianFS

+0

@MarkFs消息在消息文件夾中定義,在這種情況下使用方法名稱 – Kemo