Skip to content

Instantly share code, notes, and snippets.

@kalysr
Created November 23, 2018 02:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kalysr/7069d0ad3ab982eea749536ba1e1eb7f to your computer and use it in GitHub Desktop.
Save kalysr/7069d0ad3ab982eea749536ba1e1eb7f to your computer and use it in GitHub Desktop.
timeAgo, pluralize, escapeHtml
export function timeAgo(time, label = 'ago') {
const between = Date.now() / 1000 - Number(time);
let lb = ' ' + label;
let secPerMinute = 60;
let secPerHour = secPerMinute * 60;
let secPerDay = secPerHour * 24;
let secPerMonth = secPerDay * 30;
let secPerYear = secPerDay * 365;
if (between < secPerHour) {
if (~~(between / secPerMinute) === 0)
return 'now';
return pluralize(~~(between / secPerMinute), ' min') + lb;
} else if (between < secPerDay) {
return pluralize(~~(between / secPerHour), ' hour') + lb;
} else if (between < secPerMonth) {
return pluralize(~~(between / secPerDay), ' day') + lb;
} else if (between < secPerYear) {
return pluralize(~~(between / secPerMonth), ' month') + lb;
} else {
return pluralize(~~(between / secPerYear), ' year') + lb;
}
}
function pluralize(time, label) {
if (time === 1) {
return time + label
}
return time + label + 's'
}
export function escapeHtml(text) {
if (!text) return "";
return text
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment