javascript - Moment.js : duration shows incorrect result

标签 javascript datetime momentjs

需要计算两个时刻之间的时间间隔,并以{...年...月...日...小时...分钟}的格式显示。我使用以下代码:

var start = moment("2016-05-04 13:00:00");
var end = moment("2018-05-04 13:00:00");
var diff = moment(end).diff(start);
var duration = moment.duration(diff);

var years = duration.years();
var months = duration.months();
var days = duration.days();
var hours = duration.hours();
var minutes = duration.minutes();

console.log(years + " years " +
            months + " months " +
            days + " days " + 
            hours + " hours " + 
            minutes + " minutes ");
<script src="https://momentjs.com/downloads/moment.js"></script>

我期望结果为“2年0个月0天0小时0分钟”,但结果是“1年11个月29天0小时0分钟”。请告诉我问题是什么?

最佳答案

这是因为2016年是闰年。这是目前的一个错误,他们在 this 中修复了它。关联。请仔细检查年份差异计算。

关于javascript - Moment.js : duration shows incorrect result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292560/

相关文章:

Java - 将字符串变量转换为日期+以 MM/dd/yyyy 格式获取今天的日期

javascript - 使用 moment 检查字符串是否为有效日期

javascript - 如何用Momentjs精确计算年龄?

javascript - 如何在 iframe 上设置 'X-Frame-Options'?

javascript - 调整大小时自动调整字体大小

c++ - 时间偏移计算偏差一分钟

c++ - 如何从 boost::posix_time::ptime 获取自纪元时间以来的毫秒数

javascript - 在不同的语言环境中显示 Moment.js

javascript - 将 d3 条形图重置为原始数据源时重复轴节点

javascript - 多个 session 多次登录,无需任何商店