所有帖子从同一天只有django

时间:2015-07-22 18:51:24

标签: python django date

我目前有:

@classmethod
def get_past_week(self):
    start_date = datetime.now().date()
    end_date = datetime.now().date() - timedelta(weeks=1)
    return MyModel.objects.filter(pub_date__range=(end_date, start_date)).aggregate(Sum('off_hours'))

只是将所有帖子从当前日期减去7天

我想在当天考虑当前时间内的帖子。因此,如果时间是格林威治标准时间15:00,我希望格林尼治标准时间14:59:49的所有帖子回到同一天格林尼治标准时间00:00:01。我怎么能这样做?

我尝试了类似的东西(不是工作

def get_today_hours(self):
    start_time = datetime.now().time()
    end_time = datetime.now().time() - timedelta(hours=datetime.today().hour, minutes=0, seconds=0)
    return MyModel.objects.filter(pub_date__range=(end_time, start_time))

根据此post on SO,有一种方法可以使用CURDATE()

从同一天获取商品

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作

end_time = datetime.now()
start_time = datetime(end_time.year,end_time.month,end_time.day)

这会将end_time设置为实际时间,start_time设置为end_time的同一天,但时间设置为0小时0秒。

答案 1 :(得分:2)

这个怎么样:

from datetime import datetime, timedelta

end_time = datetime.now()
start_time = datetime.combine(end_time, datetime.min.time()) #Reset the hours/time offset
qs =  MyModel.objects.filter(pub_date__range=(start_time, end_time))

或者更简单的事情:

qs = MyModel.objects.filter(pub_date__startswith=end_time.date())