/***  根据身份证号码获取性别*  author:xiaochuan*  @param string $idcard    身份证号码*  @return int $sex 性别 1男 2女 0未知*/
function get_sex($idcard)
{if (empty($idcard)) {return null;}$sexint = (int) substr($idcard, 16, 1);return $sexint % 2 === 0 ? 2 : 1;
}/***  根据身份证号码获取生日*  author:xiaochuan*  @param string $idcard    身份证号码*  @return $birthday*/
function get_birthday($idcard)
{if (empty($idcard)) {return null;}$bir = substr($idcard, 6, 8);$year = (int) substr($bir, 0, 4);$month = (int) substr($bir, 4, 2);$day = (int) substr($bir, 6, 2);return $year . "-" . $month . "-" . $day;
}/***  根据身份证号码计算年龄*  author:xiaochuan*  @param string $idcard    身份证号码*  @return int $age*/
function get_age($idcard)
{if (empty($idcard)) {return null;}#  获得出生年月日的时间戳$date = strtotime(substr($idcard, 6, 8));#  获得今日的时间戳$today = strtotime('today');#  得到两个日期相差的大体年数$diff = floor(($today-$date)/86400/365);#  strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比$age = strtotime(substr($idcard, 6, 8).' +'.$diff.'years')>$today?($diff+1):$diff;return $age;
}/***  判断字符串是否是身份证号*  author:xiaochuan*  @param string $idcard    身份证号码*/
function isIdCard($idcard)
{#  转化为大写,如出现x$idcard = strtoupper($idcard);#  加权因子$wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);$ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');#  按顺序循环处理前17位$sigma = 0;#  提取前17位的其中一位,并将变量类型转为实数for ($i = 0; $i < 17; $i++) {$b = (int)$idcard{$i};#  提取相应的加权因子$w = $wi[$i];#  把从身份证号码中提取的一位数字和加权因子相乘,并累加$sigma += $b * $w;}#  计算序号$sidcard = $sigma % 11;#  按照序号从校验码串中提取相应的字符。$check_idcard = $ai[$sidcard];if ($idcard{17} == $check_idcard) {return true;} else {return false;}
}/***  根据身份证号,返回对应的生肖*  author:xiaochuan*  @param string $idcard    身份证号码*/
function get_zodiac($idcard)
{ //if (empty($idcard)) {return null;}$start = 1901;$end = (int)substr($idcard, 6, 4);$x = ($start - $end) % 12;$val = '';if ($x == 1 || $x == -11) {$val = '鼠';}if ($x == 0) {$val = '牛';}if ($x == 11 || $x == -1) {$val = '虎';}if ($x == 10 || $x == -2) {$val = '兔';}if ($x == 9 || $x == -3) {$val = '龙';}if ($x == 8 || $x == -4) {$val = '蛇';}if ($x == 7 || $x == -5) {$val = '马';}if ($x == 6 || $x == -6) {$val = '羊';}if ($x == 5 || $x == -7) {$val = '猴';}if ($x == 4 || $x == -8) {$val = '鸡';}if ($x == 3 || $x == -9) {$val = '狗';}if ($x == 2 || $x == -10) {$val = '猪';}return $val;
}/***  根据身份证号,返回对应的星座*  author:xiaochuan*  @param string $idcard    身份证号码*/
function get_starsign($idcard)
{if (empty($idcard)) {return null;}$b = substr($idcard, 10, 4);$m = (int)substr($b, 0, 2);$d = (int)substr($b, 2);$val = '';if (($m == 1 && $d <= 21) || ($m == 2 && $d <= 19)) {$val = "水瓶座";} elseif (($m == 2 && $d > 20) || ($m == 3 && $d <= 20)) {$val = "双鱼座";} elseif (($m == 3 && $d > 20) || ($m == 4 && $d <= 20)) {$val = "白羊座";} elseif (($m == 4 && $d > 20) || ($m == 5 && $d <= 21)) {$val = "金牛座";} elseif (($m == 5 && $d > 21) || ($m == 6 && $d <= 21)) {$val = "双子座";} elseif (($m == 6 && $d > 21) || ($m == 7 && $d <= 22)) {$val = "巨蟹座";} elseif (($m == 7 && $d > 22) || ($m == 8 && $d <= 23)) {$val = "狮子座";} elseif (($m == 8 && $d > 23) || ($m == 9 && $d <= 23)) {$val = "处女座";} elseif (($m == 9 && $d > 23) || ($m == 10 && $d <= 23)) {$val = "天秤座";} elseif (($m == 10 && $d > 23) || ($m == 11 && $d <= 22)) {$val = "天蝎座";} elseif (($m == 11 && $d > 22) || ($m == 12 && $d <= 21)) {$val = "射手座";} elseif (($m == 12 && $d > 21) || ($m == 1 && $d <= 20)) {$val = "魔羯座";}return $val;
}

根据身份证获取信息(性别,生日,年龄,是否正确,生肖,星座)相关推荐

  1. 通过身份证获取:性别、年龄、星座、生肖

    性别 /*** 根据身份证号判断性别 奇数代表男 偶数代表女* @param idNumber* @return*/ public static String gender(String idNumb ...

  2. 用java根据身份证号提取性别和年龄

    在 Java 中,可以使用以下步骤来提取身份证号中的性别和年龄信息: 使用正则表达式验证身份证号的格式是否正确. 如果身份证号的格式正确,则可以使用截取字符串的方法来提取出生日期信息.身份证号中的出生 ...

  3. 通过身份证号码得出性别和年龄

    //通过身份证号码得出性别和年龄 export const analyzeIDCard = function(IDCard) {var sexAndAge = {};//获取用户身份证号码var us ...

  4. mysql根据身份证号查 性别、年龄以及出生日期

    mysql根据身份证号查性别.年龄以及出生日期 博客里面还有对应的java工具类:芜湖,起飞 这个身份证号也就只针对大陆身份证号 SELECT p.id,-- 这是根据身份证号求年龄 (YEAR(NO ...

  5. 扫描身份证 获取信息

    百度智能云 扫描身份证 获取信息 1.https://cloud.baidu.com/doc/OCR/s/rk3h7xzck 登录百度智能云 2.点击 控制台 找到 左侧目录 产品服务 选择图像识别 ...

  6. 根据身份证号判断性别、年龄、生日

    根据身份证号判断证件持有人的性别.年龄.生日.废话不多说,直接上代码. public class IdentifyCard {private static final Integer[] ODD_NU ...

  7. springboot 根据身份证号计算性别和年龄

    基本知识:        身份证号码: 15位:6位地址码+6位出生年月日(900101代表1990年1月1日出生)+3位顺序码               18位:6位地址码+8位出生年月日(199 ...

  8. js根据身份证号码判断性别和年龄

    /**这是一个超实用的用js根据身份证号码判断性别男女的特效代码,详细看下面的*/ /** 根据身份证号码判断性别 15位身份证号码:第7.8位为出生年份(两位数),第9.10位为出生月份,第11.1 ...

  9. EXCEL表格-根据身份证号计算性别、年龄(IF、MOD函数)

    ❤关注我,不迷路❤ 点击进入EXCEL综合应用场景专栏 本篇文章将介绍如何根据身份证号来计算出年龄.性别,先来讲解一些基础知识: 身份证号共18位,其中: (1)前1.2位数字表示:所在省份的代码: ...

  10. mysql_根据身份证号识别性别、年龄、所在省份

    1.性别: IF(mod(SUBSTR(c.reciver_idcard_num,17,1),2),'man','woman') 性别, 2. 年龄: CASE WHEN c.reciver_idca ...

最新文章

  1. for循环 lamda python_Python中if-else判断语句、while循环语句以及for循环语句的使用...
  2. 【转】开放api接口签名验证
  3. 一文读懂PID控制算法
  4. DDD China Conference 2017
  5. C专家编程--读书笔记九 再论数组
  6. 十七UML核心视图动态视图之时序图
  7. 写给计算机老师的一封信800,写给老师的一封信800字作文(一)
  8. 数组内容转qstring_用Qstring给char[]数组赋值(转)
  9. hdu 1251 统计难题(trie树入门)
  10. win7 打开“计算机”慢,win7电脑启动慢解决方法
  11. java linux获取实时cpu_用java取得linux系统cpu、内存的实时信息(参考别人代码)...
  12. 动态规划——最大子矩阵(hdu1081)
  13. mysql explain分析
  14. 一个做得很好的电子产品测评类网站:Zealer
  15. 免费分享9本经典的MySQL书籍。
  16. mysql监控工具-PMM,让你更上一层楼(上)
  17. android记账系统预算功能,怎么挑选合适的 Android 记账应用?你可以从记账需求入手...
  18. mac的win10蓝牙鼠标问题
  19. 5c5cSs,暗光提升明显 iPhone 5s/5c/5样张对比
  20. IE7IE8兼容性设置_服务器端设定

热门文章

  1. Word转PDF能免费吗?这3个免费转换技巧很好用
  2. 前端vue:节点、树以及虚拟 DOM
  3. js中callback.call()和callback()的区别,有点意思
  4. pr中的剪辑视频,音频第一讲
  5. Google Python StyleGuide和Python类型注释
  6. windows系统下的文件Thumbs.db是啥东东?
  7. iOS UIImagePickerController 自定义导航条背景、标题和按钮的颜色
  8. 瑞柏匡丞_步步惊心的大数据
  9. java毕业设计毕业生实习管理系统Mybatis+系统+数据库+调试部署
  10. 高绩效教练收获_上海课程 | 教练型领导(中文)