Életkor kiszámítása születési dátumból

Laza képe

Gyakran lehet szükségünk arra, hogy születési dátumból életkor számoljunk. (Például ha társkereső oldalt csinálunk, vagy ha társkereső oldalt csinálunk.)

Eléggé szánalmas, ha a regisztrációkor a felhasználó születési dátuma mellett bekérjük az életkorát is :) A regisztrációkor ezért hozzáadunk még egy CCK mezőt, de nem akármilyent: Computing Fieldet.

Ez egy külön modul, letölthető itt: http://drupal.org/project/computed_field

Ezután már hozzá tudjuk adni a Computed típusú mezőt a profil tartalmunkhoz és a regisztrációhoz. Esetemben a profile node típushoz a kor mezőt.

Ezt itt tudjuk beállítani: admin/content/node-type/profile/fields/field_kor

Az általános beállításokban a Computed code: űrlapba kell a kódot írnunk mely a számítást végrehajtja. Szúrjuk be a következő kódot (ahol field_szuletesi_ido cserélendő annak a fieldnek az azonosítójára, amelyik a születési dátumot kéri be!)

if (!$node->nid) node_save($node);<br /><br />  $dob = $node->field_dob[0]['value'];<br />        $now = time();<br />        $then = strtotime($dob);<br /><br />        $diff = date('Y', $now) - date('Y', $then);<br /><br />        if($diff < 0)      <br />           echo '??? - negative age.';<br /><br />        if(($diff > 0) && (date('z',$now) < date('z',$then)))<br />           $diff --;<br />$node_field[0]['value'] = $diff;

Ahhoz, hogy meg is jelenjen valami, kattintsuk be, hogy display this field! És a display mezőbe írjuk a következő kódot:

 $display = $node_field_item['value']; Figyeljünk rá, hogy a data type integer legyen, ha úgy szeretnénk dolgozni vele a továbbiakban, hogy pl. viewsben szűkíthető legyen vele az életkor... Mint a kódból látható, ez a művelet akkor hajtódik végre, ha elmentjük a nodeot, tehát utólag, már felvitt nodeokra magától nem fog kiszámolódni :)

A kód forrása: http://drupal.org/node/142151#comment-986330

Megosztom Facebookon!
Megosztom Twitteren!
Megosztom Tumblren!