我在Django模板中使用编辑配置文件案例,我不确定如何将时间戳转换为适当的时间?
我从API获得的值是“dob”:730166400000,。
现在我在模板中使用它:
$stmt = $db->prepare('INSERT INTO members (name,username,password,email,active)
VALUES (:username, :password, :email, :active, :name)');
但它显示无效的过滤器标签错误。有没有什么方法可以只在Django模板中转换时间戳?我知道它在视图中是可能的,但我想在Django模板中转换它。
答案 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" }}