当我这样做的时候:
{% load humanize %}
{{ video.pub_date|naturaltime|capfirst }}我得到了2 days, 19 hours ago
我怎么能在没有小时的情况下只有2天。基本上,如果视频是在不到一天前发布的,那么它应该是X小时前,那么它应该以天计数,比如X天前,然后以周为单位。我只是不想要1小时5分钟前或者2天13分钟前。只有第一部分。
我看了人性化文档,但找不到我需要的东西。
发布于 2011-06-27 23:32:24
Django的a built-in template filter timesince提供了与您上面提到的相同的输出。下面的筛选器只删除逗号后面的第二部分:
from datetime import datetime, timedelta
from django import template
from django.utils.timesince import timesince
register = template.Library()
@register.filter
def age(value):
now = datetime.now()
try:
difference = now - value
except:
return value
if difference <= timedelta(minutes=1):
return 'just now'
return '%(time)s ago' % {'time': timesince(value).split(', ')[0]}发布于 2011-06-27 23:22:56
您应该将django.contrib.humanize.templatetags.humanize.py复制到myapp.templatetags.myhumanize,并根据需要对其进行修改。(我找不到返回"x天,y小时前“的实际行。您使用的是哪个版本的django/humanize?)
发布于 2019-09-27 09:54:17
在现代姜戈中有naturaltime。
假设now为17 Feb 2007 16:30:00。
它将16 Feb 2007 13:31:29更改为1 day, 2 hours ago。
{# some_template.html #}
{% load humanize %}
{{ past_time | naturaltime }}https://docs.djangoproject.com/en/2.2/ref/contrib/humanize/#naturaltime
https://stackoverflow.com/questions/6494921
复制相似问题