Written by Jefri Pakpahan / staff.blog.ui.ac.id, PHP

Posted with : PHP


Iseng-iseng lagi memikirkan cara menghitung umur seseorang hasil dari mysql datetime, gampang-gampang susah.

Nemu dari om gugel cara yang simple (tapi kurang tepat)


$tgl = date('Y-m-d', strtotime($tgl_lahir));

$umur = floor(time() - strtotime($tgl))/(60*60*24*365);

echo $umur;

Mengurangi unix time sekarang dengan unix time dari $tgl_lahir (format dari mysql datetime 'Y-m-d H:i:s'), kurang tepat karena membagi selisih unix time dengan asumsi pertahun ada 365 hari, sedangkan dalam setahun terkadang 366 hari.

Cara yang lebih tepat :

Masih dari om gugel


$date1 = new DateTime(date('Y-m-d', strtotime($tgl_lahir)));

$date2 = new DateTime(date('Y-m-d'));

$interval = $date1->diff($date2);

echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";

namun fungsi dari php DateTime::diff hanya dapat berjalan pada PHP 5 >= 5.3.0

Lalu saya membuat yang dapat berjalan untuk PHP 4 ke atas


list($thn_skrg, $bln_skrg, $tgl_skrg) = explode('-', date('Y-m-d'));

list($thn_lhr, $bln_lhr, $tgl_lhr) = explode('-', date('Y-m-d', strtotime($tgl_lahir)));

$umur = $thn_skrg - $thn_lhr;

		

if($bln_skrg < $bln_lhr)

 $umur--;

else if(($bln_skrg == $bln_lhr) && ($tgl_skrg < $tgl_lhr))

 $umur--;

echo $umur;

Meskipun agak panjang, namun hasil pemikiran sendiri. :D

Bacaan :

http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php



blog comments powered by Disqus