-
Notifications
You must be signed in to change notification settings - Fork 81
/
Copy pathutils.py
29 lines (25 loc) · 865 Bytes
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from datetime import datetime, timezone
def time_since(dt):
"""
Returns string representing "time since" e.g.
"""
now = datetime.now(timezone.utc)
diff = now - dt
seconds = diff.total_seconds()
minutes = int(seconds // 60)
hours = int(minutes // 60)
days = int(hours // 24)
months = int(days // 30)
years = int(days // 365)
if years > 0:
return f"{years} year{'s' if years > 1 else ''} ago"
elif months > 0:
return f"{months} month{'s' if months > 1 else ''} ago"
elif days > 0:
return f"{days} day{'s' if days > 1 else ''} ago"
elif hours > 0:
return f"{hours} hour{'s' if hours > 1 else ''} ago"
elif minutes > 0:
return f"{minutes} minute{'s' if minutes > 1 else ''} ago"
else:
return f"{int(seconds)} second{'s' if seconds > 1 else ''} ago"