0

您好,我正在使用 django 并正在通过以下方式收集日期时间

start_date = models.DateTimeField('start date', blank=True)
end_date = models.DateTimeField('end date', blank=True)

我有一个报告开始日期和一个报告结束日期。

我希望通过以下方式检索报告所花费的时间,

取 end_date 并减去结束日期并将其四舍五入到最近的一天

def report_days(self):
    return self.end_date - self.start_date

目前python shell返回这个

>>> a.report_days()
datetime.timedelta(2, 65020, 613435)
4

1 回答 1

1

Django 将 DateTimeFields 表示为 Python 日期时间对象,因此减法的结果是一个datetime.timedelta对象。要获取全天数,您可以执行以下操作:

delta = self.end_date - self.pub_date
return delta.days

不过,这只算一整天。要四舍五入到最近的一整天,您可以执行以下操作:

delta = self.end_date - self.pub_date
if delta.seconds / 3600 >= 12:
    return delta.days + 1 # round up
else:
    return delta.days # round down

有关详细信息,请参阅:http ://docs.python.org/2/library/datetime.html#timedelta-objects

于 2013-07-22T01:59:37.923 回答