swingmusic/app/serializer.py
Mungai Njoroge 198957bcae
Move server code to this repo (#95)
move server code to this repo
2023-01-13 20:01:52 +03:00

56 lines
1.2 KiB
Python

from datetime import datetime
def date_string_to_time_passed(prev_date: str) -> str:
"""
Converts a date string to time passed. eg. 2 minutes ago, 1 hour ago, yesterday, 2 days ago, 2 weeks ago, etc.
"""
now = datetime.now()
then = datetime.strptime(prev_date, "%Y-%m-%d %H:%M:%S")
diff = now - then
days = diff.days
if days < 0:
return "in the future"
if days == 0:
seconds = diff.seconds
if seconds < 15:
return "now"
if seconds < 60:
return str(seconds) + " seconds ago"
if seconds < 3600:
return str(seconds // 60) + " minutes ago"
return str(seconds // 3600) + " hours ago"
if days == 1:
return "yesterday"
if days < 7:
return str(days) + " days ago"
if days < 30:
if days < 14:
return "1 week ago"
return str(days // 7) + " weeks ago"
if days < 365:
if days < 60:
return "1 month ago"
return str(days // 30) + " months ago"
if days > 365:
if days < 730:
return "1 year ago"
return str(days // 365) + " years ago"
return "I honestly don't know"