如何减去两个日期字段后只获取日期

时间:2019-06-12 04:05:26

标签: django python-3.x

我试图将两个数据字段相减,并以天为单位得出结果。但是我也有时间在输出上。我如何只得到几天而不是时间。

这是我的代码:

class ItemTable(models.Model):
    expdate = models.DateField("EXP Date", null=True, blank=True)

 def days_to_exp(self):
    if self.expdate:
        now = datetime.date.today()
        exp = str(self.expdate - now)

        if exp > "1":
            return exp
        elif exp < "1" and exp > "0":
            return "Today"
        else:
            return "Expired"

输出:

12天,0:00:00, 4天0:00:00 ...等等

我只希望结果为:  12天  4天.....等等

2 个答案:

答案 0 :(得分:0)

从另一个datetime.date中减去一个timedelta对象的结果。您可以访问该.days对象的timedelta属性以获取所需信息。

> today = datetime.now().date()
> tomorrow = today + timedelta(days=1)
> (tomorrow - today).days
1
> (today - tomorrow).days
-1

答案 1 :(得分:0)

datetime.date实例之间相减的结果是类型为datetime.timedelta的对象,该对象表示持续时间既不是datetime.date也不是datetime.datatime。您可以通过访问timedelta的属性来获取.days的时间。

例如:

result = now().today() - (now()+timedelta(days=10))
assert(result.days==10)