Precise Range

  1. npm install moment-precise-range-plugin

The Precise Range plugin, written by Rob Dawson, can be used to display exact, human-readable representations of date/time ranges:

  1. moment("2014-01-01 12:00:00").preciseDiff("2015-03-04 16:05:06");
  2. // 1 year 2 months 3 days 4 hours 5 minutes 6 seconds
  1. moment.preciseDiff("2014-01-01 12:00:00", "2014-04-20 12:00:00");
  2. // 3 months 19 days

To obtain the raw numeric values rather than a string, pass the value true as the third argument to the method:

  1. moment.preciseDiff(m1, m2, true);
  2. // {years : 0, months : 1, days : 2, hours : 3, minutes : 4, seconds : 5, firstDateWasLater : false}