function timeAgoInWords(fromTime, toTime, includeSeconds) {
  var fromSeconds = fromTime.getTime();
  var toSeconds = toTime.getTime();
  var distanceInSeconds = Math.round(Math.abs(fromSeconds - toSeconds) / 1000)
  var distanceInMinutes = Math.round(distanceInSeconds / 60)
  if (distanceInMinutes <= 1) {
    if (!includeSeconds)
      return (distanceInMinutes == 0) ? 'seconds' : '1 minute'
    if (distanceInSeconds < 5)
      return '5 secs'
    if (distanceInSeconds < 10)
      return '10 secs'
    if (distanceInSeconds < 20)
      return '20 secs'
    if (distanceInSeconds < 60)
      return 'a min'
    return '1 min'
  }
  if (distanceInMinutes < 45)
    return distanceInMinutes + ' mins'
  if (distanceInMinutes < 90)
    return "1 hr" 
  if (distanceInMinutes < 1440)
    return (Math.round(distanceInMinutes / 60)) + ' hrs'
  if (distanceInMinutes < 2880)
    return "1 day" 
  if (distanceInMinutes < 43200)
    return (Math.round(distanceInMinutes / 1440)) + ' days'
  if (distanceInMinutes < 86400)
    return "1 month" 
  if (distanceInMinutes < 525600)
    return (Math.round(distanceInMinutes / 43200)) + ' months'
  if (distanceInMinutes < 1051200)
    return "1 year" 
  return "over " + (Math.round(distanceInMinutes / 525600)) + ' years'
}
