Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wiek osoby na podstawie PESEL
Forum PHP.pl > Forum > PHP
ktuvok
Wydawałoby się proste - pobrać z PESEL'u datę urodzenia, przeliczyć na znacznik czasu Unixa, odjąć go od mktime() i przeliczyć na lata... Niestety - znaczniki czasu Unixa obejmują zakres dat od 1970 r.

Jak zatem policzyć wiek osoby na podstawie PESEL'a?

Pozdrawiam,
K
plewa
ja mam taki pesel bo sie uroszilem 6 grudnia 1990

90 12 06 cos tam dalej

wic pobierasz perwsze dwa znaki to rok i dodajesz np 1990
12 to miesiac

06 t odzien

tylko jak ktos ma pesel np 02 12 06 tak jak ja to moze sie urodzic albo w 1802 albo 1902 albo 2002.
Mialem program kiedy ktory z dalszej czesci peselu obliczal lata. pokombinuj smile.gif powodzenia smile.gif)
crash
A po prostu tak?:
  1. <?php
  2. $pesel = 85062711111;
  3.  
  4. echo (date('Y') - (1900 + substr($pesel, 0, 2)));
  5. ?>
ktuvok
Tak można, ale to ogranicza algorytm do osób urodzonych przed 2000 rokiem.

sad.gif

Pozdrawiam,
K
dr_bonzo
Pear ma chyba taki modul do obslugi dlugich timestampow -- poszukaj.
SongoQ
Po roku 2000 do miesiaca dodaje sie 20.
xberus
Cytat(plewa @ 2005-04-18 22:52:48)
tylko jak ktos ma pesel np 02 12 06 tak jak ja to moze sie urodzic albo w 1802 albo 1902 albo 2002.

Nieprawda... sposob zapisu zmienia sie przy takich datach:
Cytat
dla osób urodzonych w innych latach niż 1900 - 1999 dodawane są do numeru miesiąca następujące wielkości:
    * dla lat 1800-1899 - 80
    * dla lat 2000-2099 - 20
    * dla lat 2100-2199 - 40
    * dla lat 2200-2299 - 60
wikipedia


I trzeba to uwzglednic...
Nie wiem czy nadal Ci potrzebne, ale dam:
  1. <?
  2. $pesel = '85862711111';
  3.  
  4. $rok=substr($pesel, 0, 2);
  5. $liczba=substr($pesel, 2, 2);
  6. if($liczba<33){
  7. $wiek=1900;
  8.  }elseif($liczba<53){
  9. $wiek=2100;
  10.  } elseif($liczba<73){
  11. $wiek=2200;
  12.  } elseif($liczba<93){
  13. $wiek=1800;
  14.  }
  15.  
  16. $lata = date('Y') - ($wiek + $rok);
  17. echo 'Osoba ma: '.$lata.' lat';
  18. ?>


Kod
Osoba ma: 120 lat


Moze rozwiazanie nie jest optymalne (sprawdza rocznik, a nie miesiac), ale dziala
SongoQ
Dodatkowo mozna by to wsadzic w funkcje/klase i dodac validacje poprawnosci.
ulka
[php] mam pytanko jak zrobić to zadanie w formularzu?? żeby w jednym okienku wpisać pesel a w drugim żeby mi się wyświetliło ile dana osoba ma lat... i mam jeszcze jedną prośbę moglibyście mi ten skrypt wysłać z opisem proszę odpiszcie jak najszybciej bo bardzo teraz tego potrzebuje sadsmiley02.gif smile.gif
Kshyhoo
Cytat(ulka @ 2006-03-15 09:17:33)
... i mam jeszcze jedną prośbę moglibyście mi ten skrypt wysłać z opisem proszę odpiszcie jak najszybciej bo bardzo teraz tego potrzebuje sadsmiley02.gif  smile.gif

Ale się uśmiałem. Koleżanko, to Forum jest po to żeby pomagać a nie odwalać za kogoś robotę. Wyżej masz co nieco opisane, kombinuj a w razie problemów na pewno ktoś się znajdzie, żeby pokierować...
SongoQ
Wystarczy zebrac informacje i polaczyc w calosc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.