Skip to content

Fuzzy time script #267

@jacebenson

Description

@jacebenson
//debug lines
var yourUpdated = '2021-08-13T16:54:00Z'

let getFuzzyDate = function (dateTime) {
  var past = new Date(dateTime).getTime()//ms since epoch
  var now = new Date().getTime()//now
  var differenceInSeconds = (now - past) / 1000//get seconds
  var thresholds = [
    { threshold:                       60 - 1, divideBy:                 1,  fuzzyUnit: 's' },
    { threshold:                  60 * 60 - 1, divideBy:                 60, fuzzyUnit: 'm' },
    { threshold:             24 * 60 * 60 - 1, divideBy:            60 * 60, fuzzyUnit: 'h' },
    { threshold:        30 * 24 * 60 * 60 - 1, divideBy:       24 * 60 * 60, fuzzyUnit: 'd' },
    { threshold:       365 * 24 * 60 * 60 - 1, divideBy:  30 * 24 * 60 * 60, fuzzyUnit: 'mo' },
    { threshold: 100 * 365 * 24 * 60 * 60,     divideBy: 365 * 24 * 60 * 60, fuzzyUnit: 'y' }
  ];
  var filtered = thresholds.filter((grouping) => {
    return differenceInSeconds < grouping.threshold
  });
  return Math.round(differenceInSeconds / filtered[0].divideBy) + filtered[0].fuzzyUnit + ' ago'
}
console.log(getFuzzyDate(yourUpdated))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions