为什么 momentjs 给出错误的结果

Why momentjs is give wrong results

我在 moment.js.its 中使用此代码运行良好,但我有一个 question.Example,今天日期是 06/01/2021 并且开始的值为 06/01/2021 DIV 它给我结果 0,如果我设置 07-01-2021,它给我结果 0。但是如果我设置 08-01-2021,那么它给我 1(必须是 2)。我想如果我设置明天日期 (07-01-2021) 我必须 return 值 1,但我收到 0,为什么?有没有办法接收1?谢谢你的解释和帮助。

我的HTML

<div id="start">07-01-2021</div>
<div id='result'></div>

javascript,monent.js

var inputDiv = document.getElementById('start');
var startDate = moment();
var endDate = moment(inputDiv.innerHTML, "DD/MM/YYYY");
var result = 'Diff: ' + endDate.diff(startDate, 'days');
$('#result').html(result);

尝试使用“DD-MM-YYYY”而不是“DD/MM/YYYY”

Moment 将用作日期时间,因此您的两个日期都将有一个与之关联的时间。

var inputDiv = document.getElementById('start');
var endDate = moment(inputDiv.innerHTML, "DD/MM/YYYY"); // time of midnight (start of day), locally
var startDate = moment();  // time you run the code

因此,endDate.diff(startDate, 'days') 将计算类似于 (tonight at midnight[locally]) - (today, midday[locally]) 的内容。该等式中没有全天差异。

试试 endDate.endOf('day').diff(startDate, 'days'),或者更好 endDate.endOf('day').diff(startDate.endOf('day'), 'days')

或者您可以设置 var startDate = moment().startOf('day'); 并使用您现在拥有的代码。