diff($target); // 使用正确的属性获取年龄 $age = $interval->y; return $age; } //根据身份证获取生日 public static function getBirthdayFromIDCard($idCard) { // 检查身份证号码是否有效 if (!preg_match("/^(\d{15}$|^\d{17}[xX\d]$)/", $idCard)) { return false; } // 提取出生日期部分 $birthday = substr($idCard, 6, 8); // 如果是15位的身份证号码,需要将年份从两位扩展到四位(假设1900-2000) if (strlen($idCard) == 15) { $year = substr($birthday, 0, 2); if ($year >= 0 && $year <= 20) { // 2000-2020 $birthday = '20' . $birthday; } else { // 1900-1999 $birthday = '19' . $birthday; } } // 格式化并返回日期字符串 return date('Y-m-d', strtotime($birthday)); } //根据身份证判断性别 public static function getGenderFromIDCard($idCard) { // 检查身份证号是否合法(长度应该是18) if (strlen($idCard) != 18) { return null; } // 获取身份证号的第17位 $genderBit = intval($idCard[16]); // 判断性别 if ($genderBit % 2 == 0) { return 0; } else { return 1; } } }