Длины секунд, минут, часов и дней - не меняются, поэтому их легко подсчитать (делить последовательно разницу на 1000, 60, 60, 24). А вот стабильного понятия "месяц" или "год" не существует. Хотя можно также использовать делители (365,25/12) и 365,25, это может оказаться "приемлемо точно"
Можно использовать и ваш код, с условием что там будет
(getFullYear()-1700)
и что кол-во лет, и особенно месяцев - весьма условно. Точнее, оно такое если этот промежуток считать с "нулевого времени" - 01.01.1700, что и делает new Date()