新旧身份证号如何转换

如题所述

  由原来的15位增加到18位,增加了第7位第8位(出生年份的前两位)和第18位校检码。
  身份证号码位数的含意
  (1)前1、2位数字表示:所在省份的代码;
  (2)第3、4位数字表示:所在城市的代码;
  (3)第5、6位数字表示:所在区县的代码;
  (4)第7~14位数字表示:出生年、月、日;
  (5)第15、16位数字表示:所在地的派出所的代码;
  (6)第17位数字表示性别:奇数表示男性,偶数表示女性;
  (7)第18位数字是校检码:也有的说是个人信息码,用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示(尾号是10,那么就得用X来代替)。 一般是随计算机的随机产生。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-04
楼上太复杂了,我写的是一个excel公式,很简单。15位身份证填写在A1单元格,公式放在B1单元格,就会在B1单元格中自动生成18位身份证号码。 =LEFT(A1,6)&"19"&RIGHT(A1,9)&MID("10X98765432",MOD((SUM(MID(A1,{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},1)*{7,9,10,5,8,4,6,3,7,9,10,5,8,4,2})+11),11)+1,1)
第2个回答  2013-05-04
<?php
//身份证号转换
function IDCode15to18($ID15)
{
$ID18=substr($ID15,0,6).'19'.substr($ID15,6);
for($i=17;$i>0;$i--){
$num+=(2^$i%11)*(substr($ID18,18-$i,1));
}
$num=$num%11;
switch($num){
case 0:
$code="1";
break;
case 1:
$code="0";
break;
case 2:
$code="X";
break;
default:
$code=strval(12-$num);
break;
}
$ID18.=$code;
return $ID18;
}
if($_POST["old"]!="")
echo IDCode15to18($_POST["old"]);
?>
<form method=post>
<input name=old value="<?PHP echo $_POST["old"];?>">
<input type=submit value="转换">
</form>
这是我从网上找的一段代码,希望对你有帮助。本回答被网友采纳
相似回答