Skip to content

Latest commit

 

History

History
102 lines (78 loc) · 3.15 KB

README.md

File metadata and controls

102 lines (78 loc) · 3.15 KB

personnummer GitHub Workflow Status Packagist Version PHP from Packagist

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
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

Errors

When a personnummer is invalid a PersonnummerException is thrown.

Options

Option Type Default Description
allowCoordinationNumber bool true Accept coordination numbers
allowInterimNumber bool false Accept interim/T 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