相关疑难解决方法(0)

如何在django模板中减去两个datetime.time值,以及如何将持续时间格式化为小时,分钟

在django应用程序中,我向Entry模板发送一个对象列表.每个Entry对象都有一个开始,结束时间是datetime.time值(来自TimeFields表单).在列出Entry对象时,我需要显示持续时间每个条目.在模型中输入一个持续时间字段似乎是简化的,因为开始和结束时间已经存在

模型

class Entry(models.Model):
    title = models.CharField(unique=True,max_length=50)
    starttime=models.TimeField(null=True)
    endtime=models.TimeField(null=True)
...
Run Code Online (Sandbox Code Playgroud)

模板

{% for entry in object_list %}
<tr> 
  <td> {{entry.title}} </td>
  <td> {{entry.starttime}}</td>
  <td> {{entry.endtime}}</td>
  <td> want to show duration here </td>
{%endfor %}
Run Code Online (Sandbox Code Playgroud)

1.是否有任何过滤器可以采用两个datetime.time值并以秒为单位计算持续时间.即

given
 t1=datetime.time(2,30,50) and
 t2=datetime.time(3,00,50)
should show
30 minutes
Run Code Online (Sandbox Code Playgroud)

2.此外,是否有过滤器,如果分钟值大于60,则可以在给定的分钟数中显示持续时间,以小时,分钟为单位

if duration is 50 minutes ==> 50 minutes
if duration is 150 minutes ==> 2 hours,30 minutes
Run Code Online (Sandbox Code Playgroud)

更新

def diff_in_time(start,end):
    startdelta=datetime.timedelta(hours=start.hour,minutes=start.minute,seconds=start.second)
    enddelta=datetime.timedelta(hours=end.hour,minutes=end.minute,seconds=end.second)
    return (enddelta-startdelta).seconds/60
Run Code Online (Sandbox Code Playgroud)

当我尝试一些采样时间值时,它给了我预期的结果

#start 11:35:00 …
Run Code Online (Sandbox Code Playgroud)

python django filter

7
推荐指数
2
解决办法
9212
查看次数

如何以分钟(浮动)为单位转换(可能为负)Pandas TimeDelta?

我有一个这样的数据框

df[['timestamp_utc','minute_ts','delta']].head()
Out[47]: 
            timestamp_utc           minute_ts                    delta
0 2015-05-21 14:06:33.414 2015-05-21 12:06:00 -1 days +21:59:26.586000
1 2015-05-21 14:06:33.414 2015-05-21 12:07:00 -1 days +22:00:26.586000
2 2015-05-21 14:06:33.414 2015-05-21 12:08:00 -1 days +22:01:26.586000
3 2015-05-21 14:06:33.414 2015-05-21 12:09:00 -1 days +22:02:26.586000
4 2015-05-21 14:06:33.414 2015-05-21 12:10:00 -1 days +22:03:26.586000
Run Code Online (Sandbox Code Playgroud)

在哪里 df['delta']=df.minute_ts-df.timestamp_utc

timestamp_utc     datetime64[ns]
minute_ts         datetime64[ns]
delta            timedelta64[ns]
Run Code Online (Sandbox Code Playgroud)

问题是,我想获得和之间的(可能是负数)分钟数timestamp_utcminutes_ts忽略秒部分。

所以对于第一行,我想得到-120. 确实,2015-05-21 12:06:00是120分钟前2015-05-21 14:06:33.414

最熊猫式的方法是什么?

非常感谢!

python datetime pandas

4
推荐指数
1
解决办法
2660
查看次数

标签 统计

python ×2

datetime ×1

django ×1

filter ×1

pandas ×1