Puedes hacer algo mas simple, si el mes y el dia ha pasado se devuelve la resta, si no la resta sin el año cumplido
Código javascript
:
Ver original<script>
function edad(s){
var A = "-", H = new Date(), Y = H.getFullYear(), M = H.getMonth()+1, D = H.getDate(),
a = s.split(A), y = a[0], m = a[1], d = a[2], yY = Y - y;
return (M > m || (m == M && D >= d)) ? yY : yY - 1;
}
alert(edad("1988-09-31")); // 28 Septiembre de 1988
alert(edad("1988-09-01")); // 1 Septiembre de 1988, ya a cumplido
</script>