Validate Swedish social security numbers.
composer require personnummer/personnummer
| Method | Arguments | Returns |
|---|---|---|
| parse | string personnummer, [ array options* ] | Instance |
| valid | string personnummer, [ array options* ] | bool |
| Method | Arguments | Returns |
|---|---|---|
| format | bool longFormat | string |
| getAge | none | int |
| isMale | none | bool |
| isFemale | none | bool |
| isCoordinationNumber | none | bool |
| isInterimNumber | none | bool |
| getDate | none | DateTime |
| 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 |
When a personnummer is invalid a PersonnummerException is thrown.
| Option | Type | Default | Description |
|---|---|---|---|
| allowCoordinationNumber | bool | true | Accept coordination numbers |
| allowInterimNumber | bool | false | Accept interim/T numbers |
| clock | Psr\Clock\ClockInterface | Personummer\SystemClock | Clock used for time calculations |
use Personnummer\Personnummer;
Personnummer::valid(1212121212);
//=> true
Personnummer::valid('20121212-1212');
//=> trueuse 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);
//=> 201212121212use Personnummer\Personnummer;
(new Personnummer('1212121212'))->getAge();
//=> 7use Personnummer\Personnummer;
(new Personnummer('1212121212'))->isMale();
//=> true
(new Personnummer('1212121212'))->isFemale();
//=> falseSee PersonnummerTest.php for more examples.
MIT