javascript - 如何使用 moment.js 获取年、月和日中的 2 个日期之间的差异

标签 javascript momentjs

如何使用 moment.js 获取年、月和日中的 2 个日期之间的差异? 例如,4/5/20142/22/2013 之间的差异应计算为 1 年 1 月 14 天

最佳答案

Moment.js 无法直接处理这种情况。它确实允许您计算两个时刻之间的差异,但结果是经过的持续时间(以毫秒为单位)。 Moment 确实有一个 Duration对象,但它将月定义为 30 天的固定单位 - 我们知道情况并非总是如此。

幸运的是,目前已经创建了一个名为 "Precise Range" 的插件。 ,这做对了。看着the source , 它的作用类似于 torazaburo's answer - 但它正确说明了要调整的月份中的天数。

在你的项目中包含 moment.js 和这个插件 (readable-range.js) 之后,你可以像这样简单地调用它:

var m1 = moment('2/22/2013','M/D/YYYY');
var m2 = moment('4/5/2014','M/D/YYYY');
var diff = moment.preciseDiff(m1, m2);
console.log(diff);

输出为“1年1个月14天”

关于javascript - 如何使用 moment.js 获取年、月和日中的 2 个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063882/

相关文章:

javascript - 如何重启 Bootstrap 之旅?

javascript - 如何将解析的数据放入 <ng-view> 元素之外的导航栏中?

javascript - 在 JavaScript 中按日期对 DateTime 对象进行分组和求和

javascript - 使用 moment.js 确定 moment() 是在特定时间 block 之前、期间还是之后

javascript - 使用 MeteorJS Collection 和 Angular 2 显示数据

JavaScript 固定长度数组插入重新分配项目位置

javascript - 如何在 React Native 中编辑平面列表项

javascript - 如何使用 Moment.js 返回当前时间戳?

javascript - Moment.js 和时区不仅仅适用于 Android Chrome

angular - 实现自定义 NgbDateParserFormatter 以更改 NgbInputDatepicker 上输入值的格式是否正确?