如何计算django中的DateTime字段

时间:2018-05-25 05:48:25

标签: python django python-3.x

假设我有以下日期时间字段,我想计算它们之间的总时间。哪种方法最好?

session_end_time = models.DateTimeField(null=True, blank=True)
discharged_at = models.DateTimeField(null=True, blank=True)
checked_in_at = models.DateTimeField(null=True, blank=True)

2 个答案:

答案 0 :(得分:2)

Django DateTime字段就像python的datetime对象,要计算它们之间的总时间,你需要从另一个中减去一个,因为它们是相同的对象。这是一种方法

result = datetime1 - datetime2
result.seconds # To have the output in seconds

在你的情况下:

total_time = (checked_in_at - discharged_at).seconds

答案 1 :(得分:1)

您只需使用-运算符来计算时差。结果将是time delta对象。

def time_diff(time1, time2):
    "retun time2-time1 in 'seconds' "
    if time1 and time2:
        return (time2 - time1).seconds
    return "one of the input is None"


此函数以秒为单位返回差异,如果其中一个输入为TypeError类型,则它将处理None异常。 ( 您在null=True

中将其定义为models