function timeSince (timeStamp) { const now = new Date() const secondsPast = (now.getTime() - timeStamp) / 1000 if (secondsPast < 60) { return parseInt(secondsPast) + 's' } if (secondsPast < 3600) { return parseInt(secondsPast / 60) + 'm' } if (secondsPast <= 86400) { return parseInt(secondsPast / 3600) + 'h' } if (secondsPast > 86400) { const day = timeStamp.getDate() const month = timeStamp.toDateString().match(/ [a-zA-Z]*/)[0].replace(' ', '') const year = timeStamp.getFullYear() === now.getFullYear() ? '' : ' ' + timeStamp.getFullYear() return day + ' ' + month + year } return 'now' } function datePivot (date, { years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0 }) { return new Date( date.getFullYear() + years, date.getMonth() + months, date.getDate() + days, date.getHours() + hours, date.getMinutes() + minutes, date.getSeconds() + seconds, date.getMilliseconds() + milliseconds ) } function timeLeft (timeStamp) { const now = new Date() const secondsPast = (timeStamp - now.getTime()) / 1000 if (secondsPast < 0) { return false } if (secondsPast < 60) { return parseInt(secondsPast) + 's' } if (secondsPast < 3600) { return parseInt(secondsPast / 60) + 'm' } if (secondsPast <= 86400) { return parseInt(secondsPast / 3600) + 'h' } if (secondsPast > 86400) { return parseInt(secondsPast / (3600 * 24)) + ' days' } } const sleep = (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)) module.exports = { timeSince, datePivot, timeLeft, sleep }