我按照代码检查用户是否在今天的日期之前出生(用户出生日期存储在变量$form_data['dob']
中)。它的代码如下:
if(change_date_format_to_db($form_data['dob'], 'Y-m-d') > change_date_format_to_db(date('Y-m-d'), 'Y-m-d'))
$this->mValidator->push_error($errors_msgs['user_dob_greater'], 'dob');
function change_date_format_to_db( $date, $current_format, $seperator = "/" ) {
if ( empty($date) || empty($current_format) ) {
return "";
}
$current_format = strtoupper($current_format);
$format_array = explode("-", $current_format);
$date_values = explode($seperator, $date);
for ($i=0;$i<3;$i++) {
$date_data[ $format_array[$i] ] = $date_values[$i] ;
}
$mysql_date_format = $date_data["Y"]."-".$date_data["M"]."-".$date_data["D"];
return $mysql_date_format;
}
现在,不要在今天的日期之前检查用户的日期,而是希望用户在今天的日期至少年满18周岁。我应该如何使用上面的代码?提前谢谢。
答案 0 :(得分:2)
$birthday = DateTime::createFromFormat('Y/m/d', $form_data['dob']);
$diff = $birthday->diff(new DateTime());
// ^^ now
if ($diff->y < 18) {
echo 'this site requires +18yrs';
}