如何减去两个日期并获得带注释的天数?

时间:2018-12-26 08:33:16

标签: django django-views

我正在查询以获取从一个人购买新手机到今天的天数。

device_record = Devc.objects.annotate(duration = todays_date - F('datebuy'))\
    .order_by('datebuy')

检索数据时,得到了3150 days, 20:08:00

由于我只想显示number of days,如何删除时间?

我尝试过:

device_record = Devc.objects.annotate(duration = (todays_date - F('datebuy')).days)\
        .order_by('datebuy')

返回的错误: 'F' object has no attribute 'days'

我像这样todays_date = datetime.now().date()定义今天的日期,datebuyDateTimeField

3 个答案:

答案 0 :(得分:0)

如果您只需要几天的时间,用户就可以购买电话。你可以这样查询 device_record = Devc.objects.order_by('datebuy')

然后在模板中 {{ your_date_field|timesince:current_date_taht_can_be_return_from_view }}

答案 1 :(得分:0)

您可以尝试减去时间戳记,然后检索日期。

from datetime import datetime, timedelta

now = datetime.now()
yesterday =  now - timedelta(days=1)
duration = now - yesterday

print duration.days

输出:

1

答案 2 :(得分:0)

device_record = Devc.objects.annotate(duration = todays_date - F('datebuy')).order_by('datebuy')

device_record = device_record.annotate(duration_in_days = F('duration__day'))