Autor Zpráva
Fisak
Profil
Dobrý den. Vzal jsem kod Jakuba Vrány viz. http://php.vrana.cz/zjisteni-veku-z-data-narozeni.php a použil ho na svých stránkách. Mám data narození ve formátu "16.1.1990" ale bohužel mi nějak nefunguje spočítání věku:
$vek = floor((date("d.m.Y") - date("d.m.Y", $row_pl->brithday)) / 10000);

nevěděl by si s tím někdo rady ? Předem děkuji za odpovědi.


př.
<?php 
$nar = "16.1.1990";
$vek = floor((date("d.m.Y") - date("d.m.Y", $nar)) / 10000);
echo $vek;
Joker
Profil
Fisak:
Takhle to udělat nejde, parametr funkce date ovlivňuje výstupní formát, vstupní formát musí být unix timestamp.

Ale pro získání toho čísla do výpočtu (např. pro 16.1.1990 tam má jít 19900116) stačí trochu přeházet ten řetězec.
Za prvé tedy explodovat tečkou, čímž se získají jednotlivé části, pak doplnit případné nuly a seskládat ve správném pořadí.
$temp = explode(".", $birthday);
// $temp[0] bude den, $temp[1] měsíc, $temp[2] rok
$bdayNum = $temp[2].str_pad($temp[1], 2, "0", STR_PAD_LEFT).str_pad($temp[0], 2, "0", STR_PAD_LEFT);

$vek = floor((date("Ymd") - $bdayNum) / 10000);
Fisak
Profil
Joker:
Děkuji moc . .. Funguje to :-)
aDAm
Profil
Je pro doplnění, stačí následovat příklad když už na nějaký odkazuješ a né si to přepsat jak tě napadne.
Fisak
Profil
aDAm:
Tak je jasný že si to potřebuju upravit pro svoje potřeby :-)
aDAm
Profil
Ale nemůžeš měnit základní logiku a počítat že ti to pak bude fungovat. Když z ferrari výtáhneš motor a dáš tam místo něj z trabanta tak taky nemůžeš čekát že s tím budeš lítat tři kila.
Fisak
Profil
aDAm:
Nepotřebuju lítat tři kila.. stačí mi když mi to pojede :-)
Joker
Profil
aDAm:
Nebyl bych tak přísný.
Fisak vzal fungující skript, zkusil ho vylepšit a při tom ho rozbil. Tak přišel sem (doufám) zjistit, co udělal špatně a proč.
Což považuji za správný a chvályhodný postup.

Když z ferrari výtáhneš motor a dáš tam místo něj z trabanta tak taky nemůžeš čekát že s tím budeš lítat tři kila.
Můj první pokus se hrabat v systémových souborech mého prvního počítače skončil destrukcí operačního systému a museli jsme zavolat opraváře, aby počítač zprovoznil. Den poté můj druhý pokus skončil opět destrukcí operačního systému, ale tentokrát jsem se naučil, jak ten problém vyřešit sám.
Takže, možná nějaký motor zničí a možná to bude fungovat hůř než předtím, ale třeba z něj bude expert na motory ;-)
aDAm
Profil
Joker:
to sice ano, ale pokud beru neco co funguje v příkladu a mě to nejde když tam mám modifikace, tak osobně jdu cestou že to opět udělám jako je v příkladu zda to bude aspoň fungovat a pak ty mé změny aplikuji postupně a jsem tak schopen odhalit při které mé změně dojde chybě, ale to je čistě můj postup no, já raději po té chybě pátrám sám a když už sem fakt v koncích tak se pokouším otravovat další ;)
Fisak
Profil
Joker:
Fisak vzal fungující skript, zkusil ho vylepšit a při tom ho rozbil. Tak přišel sem (doufám) zjistit, co udělal špatně a proč.
Přesně tak. Sem chodím jen když jsem v koncích a už si nevím rady.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: