这是我从给定日期获得天数差异的代码。 我需要准确的日子,这里我正确的日子不同是'2' 但我得到1。 我正在使用moment.js进行角度操作。这不花时间。 我需要时间来获得结果。 我在日历中使用此代码,所以我也需要花时间。
var startdate=new Date('2017-12-30 06:00:00');
var enddate=new Date('2018-01-01 01:00:00');
var diff= moment(enddate).diff(startdate, "days");
console.log(diff)
答案 0 :(得分:2)
尝试使用startOf
删除两个日期的时间部分。
moment(enddate).startOf('day').diff(moment(startdate).startOf('day'), 'days');
答案 1 :(得分:1)
试试这个vanilla JS解决方案
var numberOfDays = Math.ceil( ( enddate.getTime() - startdate.getTime() )
/ ( 1000*60*60*24 ));
<强>演示强>
var startdate=new Date('2017-12-30 06:00:00');
var enddate=new Date('2018-01-01 01:00:00');
var numberOfDays = Math.ceil( ( enddate.getTime() - startdate.getTime() )
/ ( 1000*60*60*24 ));
console.log( numberOfDays );
&#13;
答案 2 :(得分:1)
...
默认情况下,moment#diff
会将结果截断为零小数位,返回一个整数。 如果您想要一个浮点数,请将true
作为第三个参数。在2.0.0之前,moment#diff
返回一个四舍五入到最接近的整数的数字,而不是截断的数字。
var startdate = new Date('2017-12-30 06:00:00');
var enddate = new Date('2018-01-01 01:00:00');
var diff = moment(enddate).diff(startdate, "days", true);
console.log(diff); // 1.7916666666666667
console.log(Math.ceil(diff)); // 2
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
答案 3 :(得分:0)
var startdate=new Date('2017-12-30 06:00:00');
var enddate=new Date('2018-01-01 01:00:00');
console.log( moment(enddate).diff(startdate, 'days'))
console.log( moment(enddate).diff(startdate, 'weeks'))
console.log( moment(enddate).diff(startdate, 'hours'))
console.log( moment(enddate).diff(startdate, 'minutes'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>