Files

16 lines
502 B
TypeScript

const HOUR_MS = 60 * 60 * 1000;
const DAY_MS = 24 * HOUR_MS;
/** How long until a date, in whole days or hours: "6 days", "3 hours". */
export const timeLeft = (until: string | Date): string => {
const ms = new Date(until).getTime() - Date.now();
if (ms >= DAY_MS) {
const days = Math.ceil(ms / DAY_MS);
return `${days} ${days === 1 ? 'day' : 'days'}`;
}
const hours = Math.max(1, Math.ceil(ms / HOUR_MS));
return `${hours} ${hours === 1 ? 'hour' : 'hours'}`;
};