Moment.js返回错误的日期(提前一年)



我正在运行一些测试,在Moment.js 上遇到了问题

我数据库中的日期是2001-06-06T00:00:00.000+00:00

我使用了Age: moment(user.dateOfBirth).toNow(true),当它显然应该是20时,我得到了"Age": "21 years"

dateOfBirth在我的模式中被设置为Date。我把它填成2001-06-06

我还试着使用.diff,得到了一个随机数。问题出在日期的格式上吗?

谢谢。

toNow正在给出近似值,它正在四舍五入。你可以使用的是持续时间。

const dateOfBirth = "2001-06-06";
const age1 = moment("2001-06-06", "yyyy-mm-dd").toNow(true);
const age2 = moment.duration(moment().diff(moment(dateOfBirth)))._data["years"];
console.log(age1);
console.log(age2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

最新更新