php
php copied to clipboard
Validate Swedish personal identity numbers
personnummer

Validate Swedish social security numbers.
Installation
composer require personnummer/personnummer
Methods
Static
| Method | Arguments | Returns |
|---|---|---|
| parse | string personnummer, [ array options* ] | Instance |
| valid | string personnummer, [ array options* ] | bool |
Instance
| Method | Arguments | Returns |
|---|---|---|
| format | bool longFormat | string |
| getAge | none | int |
| isMale | none | bool |
| isFemale | none | bool |
| isCoordinationNumber | none | bool |
| Property | Type | Description |
|---|---|---|
| century | string | Century, two digits |
| year | string | Year, two digits |
| fullYear | string | Year, four digits |
| month | string | Month, two digits |
| day | string | Day, two digits |
| sep | string | Separator (-/+) |
| num | string | Suffix number, three digits |
| check | string | Luhn check digit, one digit |
Errors
When a personnummer is invalid a PersonnummerException is thrown.
Options
| Option | Type | Default | Description |
|---|---|---|---|
| allowCoordinationNumber | bool | true | Accept coordination numbers |
Examples
Validation
use Personnummer\Personnummer;
Personnummer::valid(1212121212);
//=> true
Personnummer::valid('20121212-1212');
//=> true
Format
use Personnummer\Personnummer;
// Short format (YYMMDD-XXXX)
(new Personnummer(1212121212))->format();
//=> 121212-1212
// Short format for 100+ years old
(new Personnummer('191212121212'))->format();
//=> 121212+1212
// Long format (YYYYMMDDXXXX)
(new Personnummer('1212121212'))->format(true);
//=> 201212121212
Get Age
use Personnummer\Personnummer;
(new Personnummer('1212121212'))->getAge();
//=> 7
Get Sex
use Personnummer\Personnummer;
(new Personnummer('1212121212'))->isMale();
//=> true
(new Personnummer('1212121212'))->isFemale();
//=> false
See PersonnummerTest.php for more examples.
License
MIT