我需要知道如何在edit_date(我的某个模型中的列)和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
我唯一能从这个功能中获得的是经过的分钟数和秒数。我需要的是以下列格式获取此日期:
Time_elapsed = 3d 47m 23s
有什么想法吗?如果我不清楚您是否需要更多信息,请告诉我
感谢您的关注,
答案 0 :(得分:1)
尝试类似
的内容c = a - b
minutes = (c.seconds % 3600) // 60
seconds = c.seconds % 60
print "%sd %sm %ss" % (c.days, minutes, seconds)
答案 1 :(得分:1)
看看dateutil.relativedelta
:
http://dateutil.readthedocs.io/en/stable/relativedelta.html
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)
我是从记忆中做过的,所以你可能需要根据自己的需要进行调整。