假设我有以下日期时间字段,我想计算它们之间的总时间。哪种方法最好?
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)
答案 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