2017-06-01 452 views
1

我使用编辑个人资料的情况下在我的Django的模板,我不知道如何将时间戳转换成适当的时间?在Django模板中显示时间戳?

我从API所获得的价值是“出生日期”:730166400000 ,.

现在我在模板中使用这样的:

<div class="form-group"> 
    <label class="col-sm-4 control-label text_left">Dob/label> 
    <div class="col-sm-8"> 
     <input type="text" class="form-control" 
       placeholder="Graduation Year" 
       value="{{ result_data_for_editing.dob |date:"U" }}" 
       name="graduationYear" id="graduationYear"> 
    </div> 
</div> 

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

+1

请界定 “适当的时间”。 “适时”的格式是什么?你还可以扩展你的代码示例吗?它是HTML标签的属性“值”吗?哪一个? – cezar

+0

适当的时间是指DD-MM-YYYY是的扩展代码 –

回答

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

确定我误解了这一点,你应该做的模板标签来完成这项工作,请与templatetags一个文件夹(或任何你想要的名称),并创建文件名为tags.py(您的姓名替换,不要忘记创建初始化的.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 %} 

然后

模板210
+0

这恐怕是行不通的。 'datevalue'应该是一个'datetime'对象,但是从UNIX纪元开始,OP有一个以毫秒为单位的'timestamp'。 – cezar

+0

@cezar感谢您的更正,我编辑了我的答案 – Aniket