UNPKG

utilyx

Version:

Modern utility helper library for cleaner, faster TypeScript/JavaScript development 🚀🔧

55 lines (46 loc) • 1.77 kB
// Function: timeAgo export function timeAgo(date: string): string { const now = new Date(); const past = new Date(date); const diff = now.getTime() - past.getTime(); const seconds = Math.floor(diff / 1000); const minutes = Math.floor(seconds / 60); const hours = Math.floor(minutes / 60); const days = Math.floor(hours / 24); const months = Math.floor(days / 30.44); const years = Math.floor(months / 12); if (years > 0) return `${years} year${years > 1 ? 's' : ''} ago`; if (months > 0) return `${months} month${months > 1 ? 's' : ''} ago`; if (days > 0) return `${days} day${days > 1 ? 's' : ''} ago`; if (hours > 0) return `${hours} hour${hours > 1 ? 's' : ''} ago`; if (minutes > 0) return `${minutes} minute${minutes > 1 ? 's' : ''} ago`; return `just now`; } // Function: getTimeDiff export function getTimeDiff(start: Date | string, end: Date | string) { const s = new Date(start).getTime(); const e = new Date(end).getTime(); let diff = Math.abs(e - s) / 1000; // in seconds const days = Math.floor(diff / 86400); diff %= 86400; const hours = Math.floor(diff / 3600); diff %= 3600; const mins = Math.floor(diff / 60); const secs = Math.floor(diff % 60); return { days, hours, mins, secs }; } // Function: formatDate export function formatDate(date: Date | string, format: string): string { const d = new Date(date); const YYYY = d.getFullYear(); const MM = String(d.getMonth() + 1).padStart(2, '0'); const DD = String(d.getDate()).padStart(2, '0'); return format .replace('YYYY', YYYY.toString()) .replace('MM', MM) .replace('DD', DD); } // Function: isLeapYear export function isLeapYear(year: number): boolean { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; }