PHP根据身份证号码,获取性别、获取生日、计算年龄等多个信息

1. 身份证号码的结构

首先,我们需要了解一下身份证号码的结构。中国的身份证号码由18位数字组成,其中前17位是公民的具体信息,最后一位是校验码。具体的结构如下:

1-6位:所在地区的行政区划码

7-14位:出生年月日

15-17位:所在地区的顺序码

18位:校验码

2. 根据身份证号码获取性别

根据身份证号码的规律,可以通过判断倒数第二位的奇偶性来确定性别。如果倒数第二位是奇数,则为男性,如果是偶数,则为女性。

function getGender($idCard) {

$gender = substr($idCard, -2, 1);

if ($gender % 2 == 0) {

return "女";

} else {

return "男";

}

}

$idCard = "身份证号码";

$gender = getGender($idCard);

echo "性别:" . $gender;

3. 根据身份证号码获取生日

身份证号码的出生年月日位于第7-14位,可以通过截取这部分字符来获取生日。

function getBirthday($idCard) {

$birthday = substr($idCard, 6, 8);

return substr($birthday, 0, 4) . "年" . substr($birthday, 4, 2) . "月" . substr($birthday, 6, 2) . "日";

}

$idCard = "身份证号码";

$birthday = getBirthday($idCard);

echo "生日:" . $birthday;

4. 根据身份证号码计算年龄

根据出生年月日可以计算一个人的年龄。首先获取当前日期,然后计算出生日期与当前日期的差值,再根据差值计算出年龄。

function getAge($idCard) {

$birthYear = substr($idCard, 6, 4);

$birthMonth = substr($idCard, 10, 2);

$birthDay = substr($idCard, 12, 2);

$currentYear = date("Y");

$currentMonth = date("m");

$currentDay = date("d");

$age = $currentYear - $birthYear;

if ($currentMonth < $birthMonth || ($currentMonth == $birthMonth && $currentDay < $birthDay)) {

$age--;

}

return $age;

}

$idCard = "身份证号码";

$age = getAge($idCard);

echo "年龄:" . $age;

5. 总结

通过PHP可以根据身份证号码获取性别、获取生日、计算年龄等多个信息。通过对身份证号码的结构进行解析和处理,可以提取出其中的关键信息。上述代码给出了相应的函数来实现这些功能,你可以根据需要进行调用和使用。

后端开发标签