Django日期过滤器未在呈现的模板中显示格式化的时间戳

cha*_*ath 2 django-templates

我正在尝试使用Django的{{ timestamp|date:"d M Y" }}功能将时间戳格式化为日期.

我遇到了一个问题,我可以输出并查看原始时间戳{{ timestamp }},但是当我的页面使用时,通过过滤器的格式化不会输出任何内容{{ timestamp|date:"d M Y" }}.

例如,现在结果{{ timestamp }} - {{ timestamp|date:"d M Y" }}1317945600 -我加载页面.

关于我可能做错什么的任何建议?

krs*_*krs 5

问题是日期不需要时间戳,它需要日期时间或日期对象.你必须在python中解析时间戳或制作一个templatetag.

将其添加到templatetags/mytags.py

from datetime import datetime
from django import template
register = template.Library()

@register.filter("timestamp")
def timestamp(value):
    try:
        return datetime.fromtimestamp(value)
    except AttributeError:
        return ''
Run Code Online (Sandbox Code Playgroud)

然后用它

{{ some_timestamp_value|timestamp|date:"format..." }}
Run Code Online (Sandbox Code Playgroud)