使用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+mysql事务rollback&amp;commit示例
Feb 08 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
基于php缓存的详解
May 15 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 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
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php生成图片缩略图的方法
2015/04/07 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
js工具方法弹出蒙版
2013/05/08 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python opencv实现证件照换底功能
2019/08/19 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
自主招生自荐信格式
2013/12/03 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
主管竞聘书范文
2014/03/31 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
宝塔更新Python及Flask项目的部署
2022/04/11 Python