如何在Django模板中使用Humanize显示“ x天前”类型的时间?

发布于 2021-01-29 18:11:37

当我这样做时:

{% load humanize %}

{{ video.pub_date|naturaltime|capfirst }}

我懂了 2 days, 19 hours ago

我如何只花2天就没有上班时间。基本上,如果视频是在不到一天前发布的,那么它应该说X个小时前,然后应该像X天之前那样在几天之内算完,然后再数周。我只是不想1分钟5分钟前或2天13分钟前。只是第一部分。

我查看了人性化文档,但找不到所需的文档。

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Django有一个内置的模板过滤器
    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]}
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看