zdravím, moc prosím o pomoc s tímto krátkým skriptem, po dlouhé snaze stále nejsem schopen odhalit chybu, chová se to nějak podivně (většinou to spočítá dobře, ale občas ne....)
V proměnné $vek se má octnout správný věk člověka na základě údajů, které již jsou zadané (proměnné $mesic, $rok, $den - datum narození člověka)
$rokCurr=date("Y");
$mesicCurr=date("m");
$denCurr=date("j");
if($mesicCurr<$mesic):
$vek=$rokCurr-$rok-1;
else:
if($mesicCurr>$mesic):
$vek=$rokCurr-$rok;
else:
if($denCurr<$den):
$vek=$rokCurr-$rok-1;
else:
$vek=$rokCurr-$rok;
endif;
endif;
endif;
neni potreba tak slozite konstrukce, staci:
$vek = floor((mktime()-mktime(0,0,0,$mesic,$den,$rok))/31536000);
a dava to presne vysledky
Děkuju za radu, na fci mktime jsem úplně zapomněl :-) Tak já to tam zkusím hodit, ale stejně nevím, co s tím předchozím skriptem je špatně, myslím, že by měl běžet taky ok... proto jsem ho sem hlavně dával, protože jestli je skutečně v pořádku, tak bude asi chyba někde jinde... (dochází k zajímavé věci, lidem, kteří jsou starší než asi 40 let to hází o rok míň... no zkusím to tvoje řešení, díky za něj ;-)
Vyzkousel jsem ten tvuj puvodni skript a funguje. Bez chyby.
Jeětě jedna odlišnost. Ten druhý je dost krátký, ale není ošetřený. Já mám ještě 22 let. 23 let budu mít až za chvíli. Takže ti co se narodily po dnešním dnu maji roky o číslo výš. Chybu bych hledal v /31536000. Nebere v potaz přestupný rok.
Jinak ten první funguje bez problému a správně.