mktime per le date di nascita si limita comunque alle nascite avvenute dopo il 1970. Poi e' errata la posizione di mese giorno.

Calcola la data con i singoli valori che hai scomposto:

codice:
<?php
$data_anno_oggi = date("Y");
$data_mese_oggi = date("n");
$data_giorno_oggi = date("j");

$eta_anno = '1987';
$eta_mese = '1';
$eta_giorno = '5';

IF(($data_anno_oggi - $eta_anno) > 18 ) { echo "sei maggiorenne";    }

   elseif(($data_anno_oggi - $eta_anno) < 18 ) { echo "sei minorenne";    }

   elseif(($data_anno_oggi - $eta_anno) == 18 AND $data_mese_oggi >= $eta_mese AND $data_giorno_oggi >= $eta_giorno)
            { echo "sei maggiorenne";  }

           else { echo "sei ancora minorenne";    }

?>