在JavaScript中获取年,月,日两个日期之间的差异

xpl*_*oOn -1 javascript date difference

好吧,我在这里找到了很多类似的问题,试图获得年,月,日两个日期之间的差异......但没有完成我要求的答案.

所以我写了一些东西来计算,似乎工作,但也许一些专家在这里可以纠正或帮助使这更简单.

dan*_*nvk 5

您可以使用moment.js来简化此操作:

function difference(d1, d2) {
  var m = moment(d1);
  var years = m.diff(d2, 'years');
  m.add(-years, 'years');
  var months = m.diff(d2, 'months');
  m.add(-months, 'months');
  var days = m.diff(d2, 'days');

  return {years: years, months: months, days: days};
}
Run Code Online (Sandbox Code Playgroud)

例如,

> difference(Date.parse("2014/01/20"), Date.parse("2012/08/17"))
Object {years: 1, months: 5, days: 3}
Run Code Online (Sandbox Code Playgroud)

moment.js还可以返回人类可读的差异("在一年内"),如果那是你真正追求的.