为什么 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');
并使用您现在拥有的代码。
我在 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');
并使用您现在拥有的代码。