35 lines
787 B
Python
35 lines
787 B
Python
import time
|
|
import datetime
|
|
|
|
def format_relative_time(timestamp: float) -> str:
|
|
"""Converts a timestamp to a human-readable relative format."""
|
|
now = time.time()
|
|
diff = now - timestamp
|
|
seconds = int(diff)
|
|
|
|
if seconds < 0:
|
|
return "In the future"
|
|
if seconds < 60:
|
|
return "Just now"
|
|
|
|
minutes = seconds // 60
|
|
if minutes < 60:
|
|
return f"{minutes}m ago"
|
|
|
|
hours = minutes // 60
|
|
if hours < 24:
|
|
return f"{hours}h ago"
|
|
|
|
days = hours // 24
|
|
if days == 1:
|
|
return "Yesterday"
|
|
if days < 30:
|
|
return f"{days}d ago"
|
|
|
|
months = days // 30
|
|
if months < 12:
|
|
return f"{months}mo ago"
|
|
|
|
dt = datetime.datetime.fromtimestamp(timestamp)
|
|
return dt.strftime('%Y-%m-%d')
|