1
|
import datetime
|
2
|
|
3
|
from django.utils.translation import pgettext
|
4
|
from django.template.defaultfilters import date
|
5
|
|
6
|
def datetime2human(dt, include_time=False, days_limit=7):
|
7
|
'''Format a datetime object for human consumption'''
|
8
|
if isinstance(dt, datetime.datetime):
|
9
|
time = dt.strftime('%H:%M')
|
10
|
else:
|
11
|
dt = datetime.datetime(year=dt.year, month=dt.month, day=dt.day)
|
12
|
include_time = False
|
13
|
today = datetime.date.today()
|
14
|
yesterday = today - datetime.timedelta(days=1)
|
15
|
subdate = dt.date()
|
16
|
if subdate == today:
|
17
|
if include_time:
|
18
|
return pgettext('humantime', 'today at {0}').format(time)
|
19
|
else:
|
20
|
return pgettext('humantime', 'today')
|
21
|
elif subdate == yesterday:
|
22
|
if include_time:
|
23
|
return pgettext('humantime', 'yesterday at {0}').format(time)
|
24
|
else:
|
25
|
return pgettext('humantime', 'yesterday')
|
26
|
else:
|
27
|
if include_time:
|
28
|
return date(dt, 'SHORT_DATETIME_FORMAT')
|
29
|
else:
|
30
|
return date(dt, 'SHORT_DATE_FORMAT')
|