瞬间js diff功能在firefox和safari中失败,但在chrome中工作正常

时间:2017-08-11 01:27:45

标签: javascript momentjs

我使用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。

请帮忙吗?

2 个答案:

答案 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。