code: function diffIt(increment, date1, date2) {
    var _incrementHandlers;
  
    var incrementHandlers = (_incrementHandlers = {}, defineProperty(_incrementHandlers, MILLISECOND, function (date1, date2) {
      return diff(date1, date2);
    }), defineProperty(_incrementHandlers, SECOND, function (date1, date2) {
      return diff(date1, date2) / 1000;
    }), defineProperty(_incrementHandlers, MINUTE, function (date1, date2) {
      return this[SECOND](date1, date2) / 60;
    }), defineProperty(_incrementHandlers, HOUR, function (date1, date2) {
      return this[MINUTE](date1, date2) / 60;
    }), defineProperty(_incrementHandlers, DATE, function (date1, date2) {
      return this[HOUR](date1, date2) / 24;
    }), defineProperty(_incrementHandlers, WEEK, function (date1, date2) {
      return this[DATE](date1, date2) / 7;
    }), defineProperty(_incrementHandlers, MONTH, function (date1, date2) {
      return this[DATE](date1, date2) / 30.44; // 365.25 / 12
    }), defineProperty(_incrementHandlers, YEAR, function (date1, date2) {
      return this[DATE](date1, date2) / 365.25; // Leap-year friendly
    }), _incrementHandlers);
  
    return incrementHandlers[increment](date1, date2);
  }
docs: Adds or subtracts specified increments to or from a date object
  @param   {String}  increment   an increment to add
  @param   {Number}  date1       date object
  @param   {Date}    date2       date object
  @returns {Number}              numeric difference between the dates in the specific increment