Bin will be removed on June 1, 2014 in favor of http://gist.github.com. Please save all your pastes before then. So long, and thanks for all the fish!×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var $validate = array(
    'birthday' => array(
        'rule' => array( 'ageLimit', 18 ),
        'message' => 'User has to be 18 or over.'
    )
);
 
 
/**
 * Poor man's age limit validation
 * Due to the lack of simple and exact PHP time diff function,
 * we conveniently forget leap years
 */
function ageLimit( $data, $reqAge ) {
    $date = strtotime( $data['birthday'] );
    if( $date !== false && $date !== -1 ) { // strtotime returns -1 < PHP 5.1.0
        $diff = time() - $date;
        return ( $diff / 31556926 > $reqAge ); // 31556926 seconds in a year
    }
    return false; // date malformed
}