首页 > 解决方案 > 将日期时间与时间范围进行比较

问题描述

我有一个代表用户何时登录的日期时间对象,我想从这个对象检查日期时间对象是否表示今天-7范围内的日期,所以如果今天是 2018-06-21 我想返回今天之间的任何日期和 2018 年 6 月 14 日。我附上了我的代码示例(非常错误)。

 def joined_today(self, query):

    filtered = []
    today = datetime.today().date()
    for x in query:
        if x[1].date() = today -7:
            filtered.append(x)

    return filtered

标签: pythondatetime

解决方案


这里有几件事。首先,您可以使用datetime.timedelta. 其次,您不想检查日期是否等于“今天 - 7”,您想检查它是否大于该日期且小于或等于今天。所以:

seven_days_ago = today - timedelta(days=7)
for x in query:
    if seven_days_ago < x[1].date() <= today:
        ...

推荐阅读