18 lines
563 B
Swift
18 lines
563 B
Swift
import Foundation
|
|
|
|
// Human-friendly age string (e.g., "2m ago").
|
|
func age(from date: Date, now: Date = .init()) -> String {
|
|
let seconds = max(0, Int(now.timeIntervalSince(date)))
|
|
let minutes = seconds / 60
|
|
let hours = minutes / 60
|
|
let days = hours / 24
|
|
|
|
if seconds < 60 { return "just now" }
|
|
if minutes == 1 { return "1 minute ago" }
|
|
if minutes < 60 { return "\(minutes)m ago" }
|
|
if hours == 1 { return "1 hour ago" }
|
|
if hours < 24 { return "\(hours)h ago" }
|
|
if days == 1 { return "yesterday" }
|
|
return "\(days)d ago"
|
|
}
|