Moment.js 日期差异为 NaN

Moment.js date difference is NaN

我正在尝试在 React 中构建一个应用程序,用户通过该应用程序传递 2 个日期,系统将 return 这两个日期之间的持续时间(以天为单位)。我已经使用了 Moment.js 库,它在同一年内可以正常工作几天,但 returning Nan 可以用于不同年份的日期。下面是我的脚本:

<tr>
    <th> 9</th>
    <th>Dr </th>
    <th>Abel </th>
    <th>Jack </th>
    <th>abeljack@outlook.com </th>
    <th>26 </th>
    <th>2019-12-25 </th>
    <th> 2020-01-02</th>
    <th>{moment([2020, 1, 2]).diff(moment([2019, 12, 25]), "days")}</th>
</tr>

我该怎么做才能对其进行排序?

当您使用反映传递给 new Date() 的参数的数字数组创建日期时,月份从零开始。因此使用 12 不是有效的月份数字。

const date1 = moment([2020, 1, 2]);
const date2 = moment([2019, 12, 25]) // null, month can not be greater than 11
date1.diff(date2, "days") // NaN

您可以将日期作为字符串传递给 moment。 moment 将为您解析日期字符串。

来自 Moment.js

When creating a moment from a string, we first check if the string matches known ISO 8601 formats, we then check if the string matches the RFC 2822 Date time format before dropping to the fall back of new Date(string) if a known format is not found.


const date1 = moment("2020, 1, 2");
const date2 = moment("2019, 12, 25");
date1.diff(date2, "days") // 8 days