"use strict"; // P R O G R A M const relativeDate = (() => { const SECOND = 1000; const MINUTE = 60 * SECOND; const HOUR = 60 * MINUTE; const DAY = 24 * HOUR; const WEEK = 7 * DAY; const YEAR = DAY * 365; const MONTH = YEAR / 12; const formats = [ [0.7 * MINUTE, "just now"], [1.5 * MINUTE, "a minute ago"], [60 * MINUTE, "minutes ago", MINUTE], [1.5 * HOUR, "an hour ago"], [DAY, "hours ago", HOUR], [2 * DAY, "yesterday"], [7 * DAY, "days ago", DAY], [1.5 * WEEK, "a week ago"], [MONTH, "weeks ago", WEEK], [1.5 * MONTH, "a month ago"], [YEAR, "months ago", MONTH], [1.5 * YEAR, "a year ago"], [Number.MAX_VALUE, "years ago", YEAR] ]; function relativeDate(input, reference) { !reference && (reference = (new Date()).getTime()); reference instanceof Date && (reference = reference.getTime()); input instanceof Date && (input = input.getTime()); const delta = reference - input; const len = formats.length; for (let i = -1; ++i < len;) { const format = formats[i]; if (delta < format[0]) return format[2] === undefined ? format[1] : Math.round(delta / format[2]) + " " + format[1]; } } return relativeDate; })(); // E X P O R T if (typeof module !== "undefined" && module.exports) module.exports = exports = relativeDate;