我使用moment.js diff函数来计算两个日期之间的天数差异。它在chrome中运行良好,但在firefox和safari返回NaN。
const month = 05;
const day = 05;
const year = 1987;
const date = new Date(year, month, day);
const dob = moment(date).format('MM-DD-YYYY');
const diff = moment().diff(dob, 'days', true);
diff的值在chrome中是正确的,但在firefox和safari中返回NaN。
请帮忙吗?
答案 0 :(得分:0)
对于日期而言,Chrome更容易使用分隔符,因此使用破折号格式化日期与Chrome无关,但不适用于Firefox。
尝试使用以下内容:
const dob = moment(date).format('MM/DD/YYYY');
在Firefox中运行代码时,您应该收到一条警告,说明您使用的日期格式不是RFC2822或ISO格式,而是使用vanilla Date()函数的后退,这会在浏览器中产生不同的结果。
答案 1 :(得分:0)
问题在于格式化。以下修复对我有用。
<强> const dob = moment(date).format('YYYY-MM-DD');
强>
(或)
您可以将数组传递给diff函数,如下所示
<强> moment().diff(moment([year, month, day]), 'days', true);
强>
diff函数需要格式为YYYY-MM-DD或YYYY / MM / DD。