Moment.js的日期差是NaN



我正试图在React中构建一个应用程序,用户可以通过该应用程序传递两个日期,系统将以天为单位返回这两个日期之间的持续时间。我使用过Moment.js库,它在同一年内正常工作了几天,但在不同的年份返回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

从字符串创建力矩时,我们首先检查字符串匹配已知的ISO8601格式,然后检查字符串是否匹配RFC 2822下降到新的回退之前的日期-时间格式如果找不到已知格式,则为日期(字符串(。


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

相关内容

  • 没有找到相关文章

最新更新