personnummer/personnummer

Validate Swedish social security numbers

Fund package maintenance!
Open Collective

Installs: 75 071

Dependents: 1

Suggesters: 0

Security: 0

Stars: 23

Watchers: 4

Forks: 7

Open Issues: 0

Type:utility

This package is auto-updated.

Last update: 2021-10-10 06:58:47 UTC


README

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