專案中身份證有效期的判斷規則

2021-08-02 06:29:04 字數 1072 閱讀 8825

最近做專案要用到判斷身份證有效資訊,但是又無法呼叫公安系統介面獲取有效期、身份證號碼等資訊,於是在系統中做了如下處理來判斷,來處理有效期規則和防止有效期、身份證號碼等規則被篡改:

1)、首先判斷身份證有效期截止日期是否是「長期」,若為長期且當前年份減去身份證號碼裡出生日期年份》=46(歲)則直接當作未過期來處理(因為僅在年齡》=46時身份證有效期才可能會為「長期」);

2)、若有效期截止日期不是長期,則繼續和本地伺服器當前時間判斷,若有效期截止日期在本地伺服器當前時間之前,返回過期:

3)、若有效期截止日期在本地伺服器當前時間之後,繼續以下判斷:

step1:系統根據「主卡證件有效起始日期」及「主卡證件有效截止日期」欄位的差值計算主卡人持有的是5年/10年/20年/長期/臨時的身份證,記為值a

若「主卡證件有效截止日期」欄位值前4位-「主卡證件有效起始日期」欄位值前4位=5,則a=5;

若「主卡證件有效截止日期」欄位值前4位-「主卡證件有效起始日期」欄位值前4位=10,則a=10;

若「主卡證件有效截止日期」欄位值前4位-「主卡證件有效起始日期」欄位值前4位=20,則a=20;

若「主卡證件有效截止日期」欄位值前4位-「主卡證件有效起始日期」欄位值前4位〉20,則a=長期;

若「主卡證件有效截止日期」欄位值前4位-「主卡證件有效起始日期」欄位值前4位=0或=1,則a=0或=1;

step2:系統根據主卡人的「出生日期」及「主卡證件有效起始日期」計算主卡人辦理身份證時的年齡(周歲),記為值b

b=(「主卡證件有效起始日期」字段值—「出生日期」字段值)/10000後的整數部分

step3:若值a與值b不滿足以下關係,則有效期無效;

當a=5時,b<16;

當a=10時,16≤b≤25;

當a=20時,26≤b≤45;

當a=長期時,b>=46;

當a=0或a=1時,b可為任意值;

step4:當a≠5且a≠10且a≠20且a≠長期且a≠1且a≠0時,則有效期無效;

step5:a=5或a=10或a=20時,若「主卡證件有效起始日期」和「主卡證件有效截止日期」月日不是一一匹配,則有效期無效。

PHP 2種方法判斷身份證是否有效

idnumber judge nativeplace birth gender 這幾個引數看看 url 身份證替換你自己變數 list file get contents compress.zlib url list mb convert encoding list,utf 8 utf 8,gbk,...

判斷我國公民的身份證是否合法

我國公民的身份證號碼特點如下 1 長度為18位 2 第1 17位只能為數字 3 第18位可以是數字或者小寫英文本母x。4 身份證號碼的第7 14位表示持有人生日的年 月 日資訊。例如 511002198808080111或51100219880808011x。請實現身份證號碼合法性判斷的函式。除滿足...

判斷生日和身份證上的生日是否相符

拿到身份證號 var carid document.getelementbyid card value var birthdayvalue document.getelementbyid birthday value 對號碼進行為空驗證 if carid 對號碼進行長度驗證 if carid.len...