【问题标题】:How to check in Django if the date was yesterday如果日期是昨天,如何签入 Django
【发布时间】:2014-10-07 09:37:46
【问题描述】:

我想比较数据库上的一些日期字段并检查它们是旧的还是今天提交的,我得到了这个代码

        {% if accounts.date.day == 13 %}
            {{ accounts.name }}
        {% endif %}

但我认为这适用于每个 motnh 的第 13 天,我不想只检查它是否是第 13 天,我想检查它是否不是今天

我试过了

        {% if accounts.date.day < today %}
            {{ accounts.name }}
        {% endif %}

在视图中

        today = datetime.datetime.now()

但它也不起作用

【问题讨论】:

  • 请注意,您将整数与日期进行比较,而不是日期时间与日期时间
  • 当我使用 today 变量时不会

标签: python django date django-templates compare


【解决方案1】:
today = datetime.date.today()  
if (today - accounts.date).days == 1:
    print "%s is yesterday!"%accounts.date

也许??

这假定accounts.datedatetime.date 的一个实例

if {% if (today.date - accounts.date).days == 1 %} 

可能在模板中工作......或者你可以创建一个过滤器(这就是我会做的

def isYesterday(a_date):
    return (datetime.date.today()-a_date).days == 1

那就做吧

{% if accounts.date | isYesterday %}

【讨论】:

  • 有没有办法在模板中做到这一点?还是我必须在 urls.py 或其他 .py 文件上强制执行?
【解决方案2】:

如果accounts.date 是日期时间 试试这个

{% if accounts.date < today %}
   {{ accounts.name }}
{% endif %}

【讨论】:

  • 在所有情况下都不会返回任何内容
  • 和accounts.date.day
  • 是的,但是我遇到了和以前一样的问题,我不知道我是否在第 5 天并且帐户日期是前一个月的第 5 天,这是否算得上是真的?因为他们有同一天
  • 使用此代码将被视为错误,这就是您必须比较 2 个日期时间对象的原因,请参阅此答案可能对您有所帮助 stackoverflow.com/questions/3798812/…
  • @Maks 是的,date(2015, 6, 20) &lt; date(2015, 7, 20)True
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2014-10-26
  • 2021-05-27
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多