我有一个datetime
字段列,用于我的详细信息视图模板。我在HTML页面中将其显示为:{{ post.created_at }}
,输出为:July 15, 2018, 7:03 p.m
,这比我需要的要冗长。
我想要以下内容:
59m
23h
6d
15 Jul 18
,没有时间。是否可以使用Jinja在HTML页面中完成此操作?
答案 0 :(得分:1)
您可以为此使用自定义过滤器。我使用如下所示的一种。它的格式不完全符合您的规范,但是您会明白的:
{{ value|format_date_human(locale='en') }}
def format_date_human(to_format, locale='en', timezoneinfo='Asia/Calcutta'):
tzinfo = timezone(timezoneinfo)
now = datetime.now()
#logging.info('delta: %s', str((now - to_format).days))
#logging.info('delta2: %s', str((datetime.date(now)-datetime.date(to_format)).days))
if datetime.date(to_format) == datetime.date(now):
date_str = _('Today')
elif (now - to_format).days == 1:
date_str = _('Yesterday')
else:
month = MONTHS[to_format.month - 1]
date_str = '{0} {1}'.format(to_format.day, _(month))
time_str = format_time(to_format, 'H:mm', tzinfo=tzinfo, locale=locale)
return "{0}".format(date_str, time_str)