mirror of
https://github.com/simstudioai/sim.git
synced 2026-10-25 09:34:44 +08:00
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { format } from 'date-fns'
|
|
|
|
/**
|
|
* Helper function to format date in various formats
|
|
*/
|
|
export const formatDate = (dateString: string) => {
|
|
const date = new Date(dateString)
|
|
return {
|
|
full: date.toLocaleDateString('en-US', {
|
|
month: 'short',
|
|
day: 'numeric',
|
|
year: 'numeric',
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
second: '2-digit',
|
|
hour12: false,
|
|
}),
|
|
time: date.toLocaleTimeString([], {
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
second: '2-digit',
|
|
hour12: false,
|
|
}),
|
|
formatted: format(date, 'HH:mm:ss'),
|
|
relative: (() => {
|
|
const now = new Date()
|
|
const diffMs = now.getTime() - date.getTime()
|
|
const diffMins = Math.floor(diffMs / 60000)
|
|
|
|
if (diffMins < 1) return 'just now'
|
|
if (diffMins < 60) return `${diffMins}m ago`
|
|
|
|
const diffHours = Math.floor(diffMins / 60)
|
|
if (diffHours < 24) return `${diffHours}h ago`
|
|
|
|
const diffDays = Math.floor(diffHours / 24)
|
|
if (diffDays === 1) return 'yesterday'
|
|
if (diffDays < 7) return `${diffDays}d ago`
|
|
|
|
return format(date, 'MMM d')
|
|
})(),
|
|
}
|
|
}
|