我在 moment.js 中有这段代码。它运行良好,但我有一个问题。例如,今天日期是 06/01/2021 并且开始 DIV 的值为 06/01/2021,它给我结果 0,相同如果我设置 07-01-2021,它给我 0 的结果。但是如果我设置 08-01-2021,那么它给我 1(必须是 2)。我想如果我设置明天日期(07-01-2021) ) 我必须返回 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);
答案 0 :(得分:2)
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');
并使用您现在拥有的代码。
答案 1 :(得分:1)
试试“DD-MM-YYYY”而不是“DD/MM/YYYY”