我试图将两个数据字段相减,并以天为单位得出结果。但是我也有时间在输出上。我如何只得到几天而不是时间。
这是我的代码:
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天.....等等
答案 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)