【问题标题】:Get the date in days hours and minute since in django template在 django 模板中获取以天小时和分钟为单位的日期
【发布时间】:2014-09-07 09:05:09
【问题描述】:

我想在 django 模板中获取日期的小时和分钟。

我的观点.py

from django.utils import timezone    
def get_user_specific_android_crave_one(request):

    if request.method=="GET":
        craves1=CraveData.objects.all().count()
        if craves1==0:

            html = render_to_string('crave/ajax/nocrave.html')
            print html
            return HttpResponse(html,mimetype="application/text")
        else:
            craves=list(CraveData.objects.all().order_by("-date"))                
            #fbUser = FacebookUser.objects.get(person=request.user)
            #print fbUser.image                        
            for crave in craves:
                #fbUser = FacebookUser.objects.get(person=CraveData.facebookuser)
                print crave
                nc = timezone.now()
                cc = crave.date
                dc = nc-cc
                secc=dc.seconds
                hours = secc // 3600
                secc = secc - (hours * 3600)
                minutes = secc // 60
                lastc = '%s hours %s minutes ago' % (hours, minutes)
                reply= list(Comment.objects.filter(crave=crave))
                print reply
                for repl in reply:
                crave.reply = reply
                html = render_to_string('crave/ajax/crave.html',{"craves":craves,"lastc":lastc})
                return HttpResponse(html,mimetype="application/json")

我的 crave.html 是

<div>{% for crave in craves  %}
{{crave.person}}{{ crave }}<br/>
{{lastc}}<!--------- To get date in days hours and minute format since crave made--------->
 {% endfor %}
</div>

在这里,我得到了时间,但对于所有渴望,我都得到了相同的书,例如“两小时 10 分钟前”。对于所有渴望都是一样的,因为我从视图中获得了相同的变量值。 我想在模板中知道如何将 django 的标准日期格式转换为我想要的日期格式。 我正在使用 {{crave.time}} 为每个渴望获得正确的日期。但这是 django 的标准格式。我想显示 1 天前、2 小时前、20 分钟前,具体取决于渴望的时间。 我在网上搜索了很多,但没有得到相关数据。请帮帮我。

【问题讨论】:

标签: python django


【解决方案1】:

您可以使用naturaltime,这里是Django documentation。一个简短的例子:

{% load humanize %}
{{ datimeobject|naturaltime }}

它将显示类似29 seconds ago1 week, 2 days from now 的内容。

请注意,您需要加载人性化

【讨论】:

  • 为此,我们需要在您的应用程序 setting.py 文件中的已安装应用程序中添加“django.contrib.humanize”。
猜你喜欢
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 2010-12-24
  • 2013-05-14
  • 1970-01-01
相关资源
最近更新 更多