【发布时间】:2021-06-02 20:09:50
【问题描述】:
我在我的项目中使用了“moment.js”(例如年龄计算器),但我想用“date-fns”替换它。
使用 moment.js,我将输入值格式化为 DD / MM / YYYY(对于 TR),并通过减去当前日期来计算年龄,但现在我无法使用 date-fns 执行此操作。我觉得 moment.js 变得更容易使用了。
Moment.js 年龄计算器代码:我在 10/03/1998 输入了输入。 (DD/MM/YYYY -> 土耳其)
const birthDay = moment(value, 'DD/MM/YYYY');
console.log(birthDay); // (output: 10/03/1998)
const now = moment();
console.log(now); // (output: Thu Mar 04 2021 10:40:09 // TR Local Time)
const age = moment.duration(now.diff(birthDay)).years();
console.log(age); // (output: 22)
我试图用 date-fns 来做,但没有成功。我无法计算年龄。
const birthDay = format(new Date(value), 'dd/MM/yyyy');
console.log(birthDay); // (output: 03/10/1998 - **issue 1**)
const now = new Date();
console.log(now); // (output: Thu Mar 04 2021 10:45:18 // TR Local Time)
const age = differenceInCalendarYears(now, birthDay);
console.log(age); // (output: NaN - - **issue 2**)
如果您能在 date-fns 方面提供帮助,我将不胜感激。
我编辑了答案,现在是这样的:
const birthDay = new Date(value);
console.log(birthDay); // Oct 03 1998 (03/10/1998) it's MM/DD, I want DD/MM
const now = new Date();
console.log(now); // Mar 04 2021
const age = differenceInCalendarYears(now, birthDay);
console.log(age); // it should be 22 but 23.
【问题讨论】:
-
值得一提的是,你不应该使用
differenceInCalendarYears,因为结果会不正确。请在stackoverflow.com/a/68673608/886592下面查看我的答案
标签: javascript reactjs date date-fns