mailmoney,
function passed(b, c, a) {
var d = new Date(a, c - 1, b, 0, 0, 0, 0),
e = new Date;
e.setHours(0, 0, 0, 0);
for (c = 0;; c++) {
a = new Date(d.getFullYear(), d.getMonth() + 2, 0);
a.getDate() > b && a.setDate(b);
if (a > e) break;
d = a
}
b = Math.round((e - d) / 864E5);
a = Math.floor(c / 12);
return [a, c % 12, b]
};
var d = 23;
var m = 11;
var y = 1987;
alert(passed(d, m, y)); //26 лет 11 месяцев 30 дней
var d = 21;
var m = 11;
var y = 1987;
alert(passed(d, m, y)); //27 лет 0 месяцев 1 день