Отправить заявку

Расшифровка идентификационного номера (Украина) на PHP

Практически у каждого жителя Украины (да и других стран) есть идентификационный номер. Это не просто набор цифр, как думают многие. Помимо уникального идентификационного номера в нем содержится информация о дате рождения и поле его владельца. Первые пять цифр кода — количество дней, прошедших с 1 января 1900 года до дня рождения владельца. Следующие четыре цифры — порядковый номер человека родившегося в этот день. Девятая цифра означает пол. Последний символ — контрольное число.

PHP функция будет возвращать массив данных:

function IdentificationNumber($number)
	{
	$result = array();
	$result['number'] = $number;
	$result['sex'] = (substr($number,8,1)%2) ? 'Мужчина' : 'Женщина';
	$split = str_split($number);
	$execute = $split[0]*(-1)+$split[1]*5+$split[2]*7+$split[3]*9+$split[4]*4+$split[5]*6+$split[6]*10+$split[7]*5+$split[8]*7;
	$number = substr($number,0,5);
	$date = date('d.m.Y',strtotime('01.01.1900 + '.$number.' days - 1 days'));
	list($result['day'],$result['month'],$result['year']) = explode('.',$date);
	return $result;
	}

Пример:

print_r (IdentificationNumber('3184710691'));

Ответ:

Array ( [number] => 3184710691 [sex] => Мужчина [year] => 1987 [month] => 03 [day] => 12 ) 
Другие публикации