python/Django两个日期之间的差异

python/Django两个日期之间的差异,django,python-2.7,datetime,time,Django,Python 2.7,Datetime,Time,我需要知道如何获取编辑日期(我的一个模型中的一列)和datetime.now()之间经过的时间。我的edit_date列采用DateTimeField格式(我正在使用Python 2.7和Django 1.10) 这就是我正在尝试的功能: def time_in_status(request): for item in Reporteots.objects.exclude(edit_date__exact=None): date_format = "%Y-%m-%d %H

我需要知道如何获取编辑日期(我的一个模型中的一列)和datetime.now()之间经过的时间。我的edit_date列采用DateTimeField格式(我正在使用Python 2.7和Django 1.10)

这就是我正在尝试的功能:

def time_in_status(request):
    for item in Reporteots.objects.exclude(edit_date__exact=None):
        date_format = "%Y-%m-%d %H:%M:%S"
        a = datetime.now()
        b = item.edit_date
        c = a - b
        dif = divmod(c.days * 86400 + c.minute, 60)
        days = str(dif)

    print days
我从这项功能中得到的唯一东西就是几分钟和几秒钟。我需要的是以以下格式获取此日期:

经过的时间=3d 47m 23s

有什么想法吗?如果我不清楚你是否需要更多信息,请告诉我

感谢您的关注,

尝试以下内容

c = a - b
minutes = (c.seconds % 3600) // 60
seconds = c.seconds % 60
print "%sd %sm %ss" % (c.days, minutes, seconds)

查看
dateutil.relativedelta


我是从内存中编写代码的,所以您可能需要根据自己的需要对其进行调整。

怎么样?这一个有效,我必须修改一些内容:),谢谢!小时呢?哦,我没有包括小时,因为你没有把它们包括在你的时间流逝的例子中。您将获得类似于
hours=c.seconds//3600
的小时数。
from dateutil.relativedelta import relativedelta
from datetime import datetime
now = datetime.now()
ago = datetime(2017, 2, 11, 13, 5, 22)
diff = relativedelta(ago, now)
print "%dd %dm %ds" % (diff.days, diff.minutes, diff.seconds)