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 :