使用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下10件你也许并不了解的事情
Sep 11 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
Zend Framework自定义Helper类相关注意事项总结
Mar 14 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python实现趣味图片字符化
2019/04/30 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
python实现交并比IOU教程
2020/04/16 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
python中线程和进程有何区别
2020/06/17 Python
python名片管理系统开发
2020/06/18 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
《沉香救母》教学反思
2014/04/19 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
银行求职自荐信
2014/06/30 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
出国导师推荐信
2015/03/25 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL