php提取身份证号码中的生日日期以及验证是否为成年人的函数

本篇文章使用php技术提取身份证号码中的生日日期来判断是否是未成年人的一个函数,下面小编把代码分享给大家,供大家参考。

php 提取身份证号码中的生日日期以及确定是否成年的一个函数,可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下:

  1. <?php
  2. //用php从身份证中提取生日,包括位和位身份证
  3. function getIDCardInfo($IDCard){
  4. $result['error']=;//:未知错误,:身份证格式错误,:无错误
  5. $result['flag']='';//标示成年,标示未成年
  6. $result['tdate']='';//生日,格式如:--
  7. if(!eregi("^[-]([-a-zA-Z]{}|[-a-zA-Z]{})$",$IDCard)){
  8. $result['error']=;
  9. return $result;
  10. }else{
  11. if(strlen($IDCard)==){
  12. $tyear=intval(substr($IDCard,,));
  13. $tmonth=intval(substr($IDCard,,));
  14. $tday=intval(substr($IDCard,,));
  15. if($tyear>date("Y")||$tyear<(date("Y")-)){
  16. $flag=;
  17. }elseif($tmonth<||$tmonth>){
  18. $flag=;
  19. }elseif($tday<||$tday>){
  20. $flag=;
  21. }else{
  22. $tdate=$tyear."-".$tmonth."-".$tday." ::";
  23. if((time()-mktime(,,,$tmonth,$tday,$tyear))>****){
  24. $flag=;
  25. }else{
  26. $flag=;
  27. }
  28. }
  29. }elseif(strlen($IDCard)==){
  30. $tyear=intval("".substr($IDCard,,));
  31. $tmonth=intval(substr($IDCard,,));
  32. $tday=intval(substr($IDCard,,));
  33. if($tyear>date("Y")||$tyear<(date("Y")-)){
  34. $flag=;
  35. }elseif($tmonth<||$tmonth>){
  36. $flag=;
  37. }elseif($tday<||$tday>){
  38. $flag=;
  39. }else{
  40. $tdate=$tyear."-".$tmonth."-".$tday." ::";
  41. if((time()-mktime(,,,$tmonth,$tday,$tyear))>****){
  42. $flag=;
  43. }else{
  44. $flag=;
  45. }
  46. }
  47. }
  48. }
  49. $result['error']=;//:未知错误,:身份证格式错误,:无错误
  50. $result['isAdult']=$flag;//标示成年,标示未成年
  51. $result['birthday']=$tdate;//生日日期
  52. return $result;
  53. }

用法如下:

getIDCardInfo('身份证号码');

以上代码就是小编跟大家分享的php提取身份证号码中的生日日期以及验证是否为成年人的函数,希望对大家有用。