41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
// ===========================
|
|
// utils.ts
|
|
// ©AngelaMos | 2025
|
|
// ===========================
|
|
|
|
export const formatDate = (dateString: string): string => {
|
|
const date = new Date(dateString)
|
|
return date.toLocaleDateString('en-US', {
|
|
month: 'short',
|
|
day: 'numeric',
|
|
year: 'numeric',
|
|
})
|
|
}
|
|
|
|
export const formatDateTime = (dateString: string): string => {
|
|
const date = new Date(dateString)
|
|
return date.toLocaleString('en-US', {
|
|
month: 'short',
|
|
day: 'numeric',
|
|
year: 'numeric',
|
|
hour: 'numeric',
|
|
minute: '2-digit',
|
|
})
|
|
}
|
|
|
|
export const formatRelativeTime = (dateString: string): string => {
|
|
const date = new Date(dateString)
|
|
const now = new Date()
|
|
const diffMs = now.getTime() - date.getTime()
|
|
const diffMins = Math.floor(diffMs / 60000)
|
|
const diffHours = Math.floor(diffMs / 3600000)
|
|
const diffDays = Math.floor(diffMs / 86400000)
|
|
|
|
if (diffMins < 1) return 'just now'
|
|
if (diffMins < 60) return `${diffMins.toString()}m ago`
|
|
if (diffHours < 24) return `${diffHours.toString()}h ago`
|
|
if (diffDays < 7) return `${diffDays.toString()}d ago`
|
|
|
|
return formatDate(dateString)
|
|
}
|