在Django中为数据库中的时间添加一天

1 投票
3 回答
2123 浏览
提问于 2025-04-17 17:00

你好,

我需要在时间上加一些条件,现在我从数据库里获取的时间格式是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 }}

撰写回答