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

时间:2011-10-08 17:29:17

标签: django-templates

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

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

例如,当我加载页面时,{{ timestamp }} - {{ timestamp|date:"d M Y" }}的结果是1317945600 -

有关我可能做错的任何建议吗?

1 个答案:

答案 0 :(得分:5)

问题是日期不需要时间戳,它需要日期时间或日期对象。 你必须在python中解析时间戳或制作模板标签。

将此添加到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 ''

然后将其与

一起使用
{{ some_timestamp_value|timestamp|date:"format..." }}