UNPKG

humanize-from-now

Version:

A tiny function that generates momentjs like time from now string.

55 lines (54 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MS = 1; exports.SECOND = 1000 * exports.MS; exports.MINUTE = 60 * exports.SECOND; exports.HOUR = 60 * exports.MINUTE; exports.DAY = 24 * exports.HOUR; exports.MONTH = 30 * exports.DAY; exports.YEAR = 365 * exports.DAY; const AS_JUST_NOW = 5 * exports.SECOND; const AS_SECONDS = 45 * exports.SECOND; const AS_A_MINUTE = 90 * exports.SECOND; const AS_MINUTES = 45 * exports.MINUTE; const AS_AN_HOUR = 90 * exports.MINUTE; const AS_HOURS = 22 * exports.HOUR; const AS_A_DAY = 36 * exports.HOUR; const AS_DAYS = 26 * exports.DAY; const AS_A_MONTH = 45 * exports.DAY; const AS_MONTHS = 320 * exports.DAY; const AS_A_YEAR = 548 * exports.DAY; exports.FAILOVER = 'N/A'; function default_1(time, failover = exports.FAILOVER) { const t = typeof time !== 'number' ? new Date(time).getTime() : time; if (isNaN(t)) return failover; const now = Date.now(); const diff = now - t; if (diff < 0) return failover; if (diff < AS_JUST_NOW) return 'just now'; if (diff < AS_SECONDS) return 'a few seconds ago'; if (diff < AS_A_MINUTE) return 'a minute ago'; if (diff < AS_MINUTES) return `${Math.round(diff / exports.MINUTE)} minutes ago`; if (diff < AS_AN_HOUR) return 'an hour ago'; if (diff < AS_HOURS) return `${Math.round(diff / exports.HOUR)} hours ago`; if (diff < AS_A_DAY) return 'a day ago'; if (diff < AS_DAYS) return `${Math.round(diff / exports.DAY)} days ago`; if (diff < AS_A_MONTH) return 'a month ago'; if (diff < AS_MONTHS) return `${Math.round(diff / exports.MONTH)} months ago`; if (diff < AS_A_YEAR) return 'a year ago'; return `${Math.round(diff / exports.YEAR)} years ago`; } exports.default = default_1;