在Django中为数据库中的时间添加一天
你好,
我需要在时间上加一些条件,现在我从数据库里获取的时间格式是2012-09-05 05:05:05,我想在这个时间上加24小时。
我需要根据时间显示不同的内容,比如在原来的时间我想显示“hi”,而在24小时后我想显示“hello”在模板文件里。
我该怎么做呢?请帮帮我。
3 个回答
1
这是一个关于如何添加天数的示例。
import datetime
b = var_name + datetime.timedelta(0,3) # days, seconds
or
datetime.timedelta(days=1)
你可以通过视图传递这个值,然后在你的模板中使用if语句。
2
你也可以把这个当作一个简单的过滤器来使用。
from django import template
register = template.Library()
@register.filter()
def is_at_least_24_hours_ago(value):
import datetime
original_date_plus_24 = value + datetime.timedelta(hours=24)
right_now = datetime.datetime.now()
if right_now >= original_date_plus_24:
return True
return False
然后在你的模板里:
{% if object_date|is_at_least_24_hours_ago %}
// It's 24 hours later
{% else %}
// It's not
{% endif %}
2
可能可以用自定义模板标签来解决这个问题,这样做会很不错。你可以参考这个链接:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-filters。你可以自己实现一个叫做 deltaDays
的标签,并且可以传入参数,比如 {{ date|deltaDays:1 }}
。