使用php实现从身份证中提取生日


Posted in PHP onMay 09, 2016

用php从身份证中提取生日,包括15位和18位身份证

function getIDCardInfo($IDCard,$format=1){ 
 $result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误 
 $result['flag']='';//0标示成年,1标示未成年 
 $result['tdate']='';//生日,格式如:2012-11-15 
 if(!preg_match("/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/",$IDCard)){ 
  $result['error']=1; 
  return $result; 
 }else{ 
  if(strlen($IDCard)==18)
  { 
   $tyear=intval(substr($IDCard,6,4)); 
   $tmonth=intval(substr($IDCard,10,2)); 
   $tday=intval(substr($IDCard,12,2)); 
  }
  elseif(strlen($IDCard)==15)
  { 
   $tyear=intval("19".substr($IDCard,6,2)); 
   $tmonth=intval(substr($IDCard,8,2)); 
   $tday=intval(substr($IDCard,10,2)); 
  }
   
  if($tyear>date("Y")||$tyear<(date("Y")-100))
  { 
    $flag=0; 
   }
   elseif($tmonth<0||$tmonth>12)
   { 
    $flag=0; 
   }
   elseif($tday<0||$tday>31)
   { 
    $flag=0; 
   }else
   { 
    if($format)
    {
     $tdate=$tyear."-".$tmonth."-".$tday; 
    }
    else
    {
     $tdate=$tmonth."-".$tday; 
    }
     
    if((time()-mktime(0,0,0,$tmonth,$tday,$tyear))>18*365*24*60*60)
    { 
     $flag=0; 
    }
    else
    { 
     $flag=1; 
    } 
   }  
 } 
 $result['error']=2;//0:未知错误,1:身份证格式错误,2:无错误 
 $result['isAdult']=$flag;//0标示成年,1标示未成年 
 $result['birthday']=$tdate;//生日日期 
 return $result; 
}
PHP 相关文章推荐
php遍历目录viewDir函数
Dec 15 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
php中rename函数用法分析
Nov 15 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
微信支付开发订单查询实例
Jul 12 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
PHP使用内置函数生成图片的方法详解
May 09 #PHP
php时间计算相关问题小结
May 09 #PHP
php数据访问之查询关键字
May 09 #PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 #PHP
php数据访问之增删改查操作
May 09 #PHP
php简单实现批量上传图片的方法
May 09 #PHP
php简单备份与还原MySql的方法
May 09 #PHP
You might like
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
最简单的js图片切换效果实现代码
2011/09/24 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
Python实现批量压缩图片
2018/01/25 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
python取余运算符知识点详解
2019/06/27 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
经济职业学院毕业生自荐书
2014/03/17 职场文书
班主任个人工作反思
2014/04/28 职场文书
集中采购方案
2014/06/10 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
入股合作协议书
2014/10/12 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
质量保证书格式
2015/02/27 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
创业计划书介绍
2019/04/24 职场文书
MySQL分区表管理命令汇总
2022/03/21 MySQL