hyhyhy
2.08.2011, 20:28:51
Witam,
Mam do zrobienia formularz rejestracyjny, gdzie na potrzeby rejestracji user wpisuje PESEL. Następnie jest jeszcze warunek pełnoletności usera (Checkbox) - pomyślałem, żeby to połączyć i od razu z peselu sprawdzać, czy dana osoba jest pełnoletnia, czyli uciąć jakimś substr pierwsze 6 cyfr, no i pozmieniać na format daty - jeszcze nad tym nie myślałem ale brzmi w miarę prosto.
Natomiast niewiadomą dla mnie jest, jak porównać czy od daty, którą uzyskam (data urodzin) do daty obecnej minęło 18 lat.
Jest mi w stanie ktoś doradzić, jak to rozwiązać?
arzach
2.08.2011, 20:45:23
$miesiac_urodzenia = 6;
$dzien_urodzenia = 2;
$rok_urodzenia = 1984;
$time = mktime( 0
, 0
, 0
, $miesiac_urodzenia, $dzien_urodzenia, $rok_urodzenia); $wiek = $dzis - $time;
matisob
2.08.2011, 21:45:54
365 dni lub 366 dni ma roczek więc tu jest mały problem - > echo floor((((($wiek/60)/60)/24)/365));
Fifi209
2.08.2011, 21:59:33
Jaki problem używać
datetime ? ;]
buliq
2.08.2011, 22:08:44
Lepiej zrobić to tak:
$pesel = 92010294829;
$miesiac_urodzenia = substr($pesel,2
,2
); $dzien_urodzenia = substr($pesel,4
,2
); $rok_urodzenia = 1900
+substr($pesel,0
,2
); if ($miesiac_urodzenia=>21 && $miesiac_urodzenia<=32) // 2000 rok i wyzej
{
$rok_urodzenia = 2000
+substr($pesel,0
,2
); $miesiac_urodzenia -= 20;
}
$time = mktime( 0
, 0
, 0
, $miesiac_urodzenia, $dzien_urodzenia, $rok_urodzenia); $t = strtotime("-18 years"); // lub -216 months $wiek = $t-$time;
if ($wiek <0
) echo "za mlody :((";
z palca nie testowane
Crozin
2.08.2011, 22:13:55
@arzach, @buliq: Ale wiecie, że niektórzy ludzie urodzili się w latach 60-tych, a nawet wcześniej?
@hyhyhy: Pierwsze sześć liczb numeru PESEL nie koniecznie musi oznaczać datę urodzenia. Możesz to traktować co najwyżej jako dodatek i np. na poziomie JS po wpisaniu PESEL-u automatycznie uzupełnić datę urodzenia, jednak musisz pozostawić możliwość ręcznej korekcji.
Co do tematu, @Fifi209 podał prawidłową odpowiedź.
buliq
2.08.2011, 22:31:33
@up a co to za różnica który rok? Sprawdź:
to. Liczą się stulecia
hyhyhy
2.08.2011, 22:58:59
Wielki dzięki buliq

@Crozin też dzięki, masz rację, będę musiał jednak userowi kazać to zatwierdzić - no trudno, nie wszystko się z automatu da zrobić
skowron-line
2.08.2011, 23:23:24
@hyhyhy poczytaj
Cytat
Dla odróżnienia poszczególnych stuleci przyjęto następującą metodę ich kodowania:
* dla osób urodzonych w latach 1900 – 1999 — miesiąc zapisywany jest w sposób naturalny (bez zmian),
* dla odróżnienia osób urodzonych w innych latach niż 1900 – 1999 do numeru miesiąca dodawane są 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
ze strony
http://www.gazetapodatnika.pl/artykuly/nad...pesel-a_751.htm, bo system nadawania numeru pesel nie jest taki oczywisty jak się wydaje
Fifi209
3.08.2011, 09:30:16
skowron może nie zauważyłeś, ale temat "liczą się stulecia" był już poruszany, był nawet link do wikipedii, gdzie można sobie o tym przeczytać. ;]
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.