export function timeSince()

in packages/@fbcmobile-ui/Utils/DateUtils.js [103:140]


export function timeSince(
  date: moment$Moment,
  locale: string,
  currentTime?: moment$Moment,
) {
  const now = currentTime ? currentTime : moment().locale(locale);

  const intervals = {
    years: {diff: now.diff(date, 'years'), unit: 'y'},
    weeks: {diff: now.diff(date, 'weeks'), unit: 'w'},
    days: {diff: now.diff(date, 'days'), unit: 'd'},
    hours: {diff: now.diff(date, 'hours'), unit: 'h'},
    minutes: {diff: now.diff(date, 'minutes'), unit: 'm'},
    seconds: {diff: now.diff(date, 'seconds'), unit: 's'},
  };

  let intervalType = null;
  if (intervals.years.diff >= 1) {
    intervalType = 'years';
  } else if (intervals.weeks.diff >= 1) {
    intervalType = 'weeks';
  } else if (intervals.days.diff >= 1) {
    intervalType = 'days';
  } else if (intervals.hours.diff >= 1) {
    intervalType = 'hours';
  } else if (intervals.minutes.diff >= 1) {
    intervalType = 'minutes';
  } else if (intervals.seconds.diff >= 1) {
    intervalType = 'seconds';
  }

  if (intervalType === null) {
    return 'now';
  }

  const interval = intervals[intervalType];
  return `${interval.diff}${interval.unit}`;
}