tykfyr/cpr-danish-validate

Valider og analyser danske CPR-numre.

v1.0.0 2025-04-07 19:13 UTC

This package is auto-updated.

Last update: 2025-05-07 19:32:10 UTC


README

Et simpelt PHP-bibliotek til validering og analyse af danske CPR-numre. Understøtter:

  • Validering af format og fødselsdato
  • Udtræk af fødselsdato som Carbon-instans
  • Bestemmelse af køn (mand/kvinde)

Kræver PHP 8.1+ og nesbot/carbon

🔧 Installation

Installer via Composer:

composer require tykfyr/cpr-danish-validate

⚙️ Usage

use Tykfyr\Cpr\CprValidator;

// Valider CPR-nummer
CprValidator::isValid('0101011234'); // true eller false

// Hent fødselsdato som Carbon-instans
$date = CprValidator::getBirthdate('0101011234');
echo $date?->format('Y-m-d'); // 1901-01-01

// Find ud af køn (baseret på sidste ciffer)
echo CprValidator::getGender('0101011235'); // 'male'
echo CprValidator::getGender('0101011234'); // 'female'

🧠 Hvordan virker det?

  • Et dansk CPR-nummer består af 10 cifre: DDMMYY-SSSS
  • Fødselsdatoen parses og matches mod gyldige datoer med Carbon
  • Serienummeret (SSSS) bruges til at bestemme århundredet (1800/1900/2000)
  • Sidste ciffer afgør køn: lige = kvinde, ulige = mand

✅ Eksempler på validering

// Gælder: 1. januar 1901 + gyldigt serienummer
CprValidator::isValid('0101011234'); // true

// Ugyldig dato
CprValidator::isValid('3102991234'); // false (31. februar findes ikke)

// Forkert længde
CprValidator::isValid('123456789'); // false