在Django模板中显示时间戳?

时间:2017-06-01 07:41:32

标签: python django

我在Django模板中使用编辑配置文件案例,我不确定如何将时间戳转换为适当的时间?

我从API获得的值是“dob”:730166400000,。

现在我在模板中使用它:

    $stmt = $db->prepare('INSERT INTO members (name,username,password,email,active) 
                                   VALUES (:username, :password, :email, :active, :name)');

但它显示无效的过滤器标签错误。有没有什么方法可以只在Django模板中转换时间戳?我知道它在视图中是可能的,但我想在Django模板中转换它。

2 个答案:

答案 0 :(得分:2)

您可以使用自定义模板过滤器

{{ datevalue| print_timestamp | date:"d-m-Y" }}

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

def print_timestamp(timestamp):
    try:
        ts = float(timestamp)
    except ValueError:
        return None
    return datetime.datetime.fromtimestamp(ts)

register.filter(print_timestamp)

答案 1 :(得分:1)

好吧我误解了这一点,你应该制作模板标签使其工作,制作一个带有templatetags(或任何你想要的名字)的文件夹并创建名为tags.py的文件(替换为你的名字,不要忘记创建 init .py)

from django import template    
register = template.Library()    

@register.filter('timestamp_to_time')
def timestamp_to_time(timestamp):
    import datetime
    return datetime.date.fromtimestamp(int(timestamp))

然后,使用

将其包含在您的模板中
{%  load tags %}

然后

{{ result_data_for_editing.dob|timestamp_to_time|date:"d-m-Y" }}