BOARD

자료·레퍼런스

PHP 주민번호 기반 만 나이 계산 함수 구현 및 그누보드 적용 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 17회 작성일 26-09-26 15:59

본문

PHP 주민번호 기반 만 나이 계산 함수 구현 및 그누보드 적용 방법

그누보드 환경에서 PHP를 이용해 주민등록번호와 생년월일로 만 나이를 정확하게 계산하는 함수를 구현하고 적용하는 방법을 살펴봅니다.

PHP 만 나이 계산 함수 구현

현재 날짜와 생년월일(년, 월, 일)을 인자로 받아 비교하여 만 나이를 반환하는 PHP 함수 예시 코드입니다.

<? function fn_age($yy,$mm,$dd) { $now_year = date("Y"); $now_month = date("m"); $now_day = date("d"); if($mm < $now_month) $age= $now_year - $yy; else if($mm == $now_month) { if($dd <= $now_day) $age= $now_year - $yy; else $age= $now_year - $yy-1; } else $age= $now_year - $yy-1; return $age; } $p_age = fn_age('1899','04','20'); echo $p_age;?>

주의사항

  • 제공된 기본 함수 코드에는 주민번호 뒷자리(성별 구분 및 2000년 이후 출생자 세기 판별 등) 처리 로직이 포함되어 있지 않습니다.

주민등록번호 뒷자리의 첫 번째 숫자를 활용하면 출생 연도의 세기를 판별할 수 있습니다. 2000년 이전 출생자와 이후 출생자를 구분하는 기준은 다음과 같습니다.

주민등록번호 뒷자리 첫 번째 숫자에 따른 세기 구분

  • 1900년대생: 남성은 1, 여성은 2로 시작합니다.
  • 2000년대생: 남성은 3, 여성은 4로 시작합니다.
  • 외국인: 1900년대 이전 출생자는 남성 5·여성 6, 2000년 이후 출생자는 남성 7·여성 8로 구분합니다.

따라서 PHP에서 나이를 계산할 때, 주민등록번호 앞 2자리(연도)와 함께 뒷자리 첫 번째 숫자를 조건문으로 확인하여 1900 또는 2000을 더하는 방식으로 정확한 출생 연도를 산출할 수 있습니다.

*참고: 2020년 10월 5일 이후 출생자부터는 뒷자리 중 성별을 제외한 6자리가 임의 번호로 부여되므로, 이 방식은 해당 날짜 이전 출생자에게 적용됩니다.

그누보드 환경에서의 나이 출력 활용

본인인증 등을 통해 생년월일($mb_birth)을 확보한 경우, 위에서 정의한 fn_age 함수를 호출하여 나이를 계산하고 화면에 출력할 수 있습니다.

// 예: 생년월일이 '1990-05-15'인 경우
$birth = '1990-05-15';
list($yy, $mm, $dd) = explode('-', $birth);
$age = fn_age($yy, $mm, $dd);

echo "만 나이: ". $age. "세";

그누보드 회원 정보 수정 페이지(register_form_skin.php 등)에서 입력 필드에 자동으로 나이를 채우려면 자바스크립트와 연동하여 값을 설정하십시오.

상황별 가이드

내 상황선택 기준다음 행동
생년월일(년·월·일) 데이터가 준비된 상태현재 날짜와 생년월일의 월·일을 비교하여 생일 지남 여부를 판별하는 fn_age 함수 적용함수 코드를 적용하고 반환되는 만 나이 결괏값 확인
주민등록번호 앞 6자리만 보유한 상태2000년 이전 출생자에 한해 연도 계산이 가능하므로 대상 범위 확인2000년 이후 출생자 포함 시 주민번호 뒷자리 첫 번째 숫자 판별 로직 추가 검토

실전 FAQ

Q. 주민번호 뒷자리 성별 구분 코드를 포함해 출생 연도를 판별하는 PHP 코드는 어떻게 작성하나요?

  • 예외 및 대안: 기본 fn_age 함수는 주민번호 뒷자리를 처리하지 않으므로, 뒷자리 첫 번째 숫자(1·2는 1900년대, 3·4는 2000년대)를 파싱하여 연도에 '19' 또는 '20'을 붙여 세기를 판별하는 전처리 로직을 함수 앞에 추가해야 합니다.
  • 막히는 지점: 2020년 10월 5일 이후 출생자는 뒷자리가 임의 번호로 부여되므로 기존 세기 판별 및 출생 지역 유추 로직이 적용되지 않습니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.