2014-06-17 3 views
0

나는 오늘 생년월일 (생년월일이 변수 $form_data['dob']에 저장 됨) 이전에 태어났는 지 확인하는 코드를 작성했습니다. 이 코드는 다음과 같습니다 : 지금은 사용자가 오늘 날짜에 18 세 이상 높아야합니다 대신에 오늘 날짜 전에 사용자의 날짜를 확인의PHP로 오늘 날짜가 18 세 이상인 사람들을 고려하는 방법은 무엇입니까?

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; 
     } 

. 위의 코드로 어떻게해야합니까? 미리 감사드립니다.

답변

2

하면 DateTime 개체와 단순화를 위해 DateTime Object

$birthday = DateTime::createFromFormat('Y/m/d', $form_data['dob']); 

$diff = $birthday->diff(new DateTime()); 
//      ^^ now 

if ($diff->y < 18) { 
    echo 'this site requires +18yrs'; 
} 
+1

+1로 간단하게 – andrew