рони, там временная зона "сыграла" свою роль...
Но это уже особенность JS и его "дата образования".
К самой "формуле" расчета это не имеет отношения.
Она правильно посчитает если даты будут правильные.
const d1 =19901207
const d2 = 20211206
const age = Math.trunc((d2 - d1) / 10000)
alert(age)