2017-06-01 447 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