Django:如何返回当前时间与DateTimeField的值之间的小时差?

时间:2019-02-23 08:59:48

标签: python django django-models python-datetime

我尝试获取现在和数据的最后一次通话之间的时差,并在网站中进行监控。

我的models.py代码是;

now_diff

但是我还需要{{1}}函数来返回小时差。我已经搜索了互联网,但是找不到任何解决方案,date()对象不会返回小时或分钟。有办法吗?

2 个答案:

答案 0 :(得分:0)

问题是因为您正在执行datetime.now.date(),这会松散时间部分,并且您会得到类似datetime.date(2019,2,23)的内容。如果由于需要小时也要保留时间,则删除.date()以便保留时间部分:

template<typename T>
struct point
{
    T x, y;
};

template<typename T1, typename T2>
auto operator*(const point<T1>& lhs, const point<T2>& rhs)
    -> point<decltype(std::declval<T1>() * std::declval<T2>())>
{   
    return {lhs.x*rhs.x, lhs.y*rhs.y};
}

template<typename T1, typename T2>
point<T1> operator*(const point<T1>& p, const T2& v)
{
    return {p.x*v, p.y*v};
}

template<typename T1, typename T2>
point<T1> operator*(const T2& v, const point<T1>& p)
{
    return p * v;
}

这里我使用本地时区。阅读pytz时区,例如pytz.utc以获取UTC时间。

>>> from datetime import datetime
>>> import pytz
>>> from tzlocal import get_localzone

使用.date(),您没有几小时或几分钟的时间

>>> local_tz = get_localzone()

没有.date(),您可以看到小时,分钟,秒和使用率

>>>> datetime.now(local_tz).date()
datetime.date(2019, 2, 25)

答案 1 :(得分:0)

计算时差。您可以编写以下函数:

def now_diff(self):
    delta = datetime.now() - self.call_time
    return delta.total_seconds() / (60 * 60)

注意:两个日期或时间之间的差返回timedelta对象。