Как рассчитать поля DateTime в Django - PullRequest
0 голосов
/ 25 мая 2018

Предположим, у меня есть следующие поля даты и времени, и я хотел бы рассчитать общее время между ними.Какой подход лучше?

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 голосов
/ 25 мая 2018

Вы можете просто использовать оператор - для вычисления разницы во времени.Результатом будет объект 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)

0 голосов
/ 25 мая 2018

Django DateTime Поля похожи на datetime объект python, чтобы вычислить общее время между ними, вам необходимо вычесть одно из другого, поскольку они являются одинаковыми объектами.Это подход

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

В вашем случае:

total_time = (checked_in_at - discharged_at).seconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...