javascript - Moment.js 两个日期之间的持续时间

标签 javascript date momentjs date-difference

如何使用 moment.js 获取两个不同日期变量之间的时间差,特别是年、月和日?

我找到了这个方法,但我总是得到奇怪的结果。有时结果提前一个月所以我添加了减去一个月的部分以使结果正确,但是当两个日期之间的差异可以分为整年时它就会落后一个月,但是如果我删除减去月份部分,它变得更加困惑。

我也想将其格式化为“X年,Y月,Z天”,但也不知道如何以这种方式格式化。

var dateOne = new Date(2000,07,16);
var dateTwo = new Date (1990,07,16);
var updatedDate = moment(dateOne).format('ll');
   
var x = moment(dateOne, 'DD/MM/YYYY').diff(moment(dateTwo, 'DD/MM/YYYY'))
var y = moment.duration(x);
var why = moment(x).subtract(1, 'M');
var z = Math.floor(y.asYears()) + moment.utc(why).format('/MM/DD');
console.log(z);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

最佳答案

也许试试这个?

var firstDate = moment();
var secondDate = moment("2018-03-19");
var yearDiff = firstDate.diff(secondDate, "year");
var monthDiff = firstDate.diff(secondDate, "month");
var dayDiff = firstDate.diff(secondDate, "day");
console.log(yearDiff + " Years, " + monthDiff + " Months, " + dayDiff + " Days");

https://jsfiddle.net/px1brLdk/

关于javascript - Moment.js 两个日期之间的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799494/

相关文章:

javascript - 尝试使用 JSON 在 HTML 中显示 PHP 回显

javascript - Ctrl+S 阻止 Chrome 中的默认设置

javascript - 此代码在 Chrome 中有效,但在 Internet Explorer 中无效

php - mysql。我想获取具有特定日期的所有行的最大值并使用相应的字段

javascript - 如何设置 eslint 以仅在单文件 vue 组件中将 lodash 检测为全局?

javascript - 使用javascript中的循环创建html代码块

MySQL 日期范围选择

php - 如何检测当前日期是否大于日期时间?

javascript - 在 LiveCycle Designer 中包含 Moment.js

javascript - 为什么这会返回一个带有 moment js 的无效日期