我有django app以及为日期设置正确条件的问题:
以下是我的过滤器:
任务1
@register.filter(name='if_more_then_24')
def if_more_then_24(time):
return time + datetime.timedelta(hours=24) > timezone.now()
任务2
@register.filter(name='if_less_then_24')
def if_less_then_24(time):
return time + datetime.timedelta(hours=24) < timezone.now()
任务3
@register.filter(name='now_online')
def now_online(time):
return time < timezone.now()
@register.filter(name='not_online')
def not_online(time):
return time > timezone.now()
但代码不起作用,因为我有 {{object.event_from}} 2016年12月11日下午5点 今天是2016年12月12日,下午4:31 计数器显示小时1:28而不是天
答案 0 :(得分:2)
我认为你的逻辑可能会落后:
def if_more_then_24(time):
return time + datetime.timedelta(hours=24) > timezone.now()
如果给定的time
(比如昨天的某个时间)+ 24小时大于,那么这意味着它不到24小时之前(因为增加24小时会导致未来的时间)。
def if_less_then_24(time):
return time + datetime.timedelta(hours=24) < timezone.now()
如果给定的time
+ 24小时比现在少,则意味着time
超过24小时前,因为过去仍然添加了一天。
因此,无论你在何处调用你的函数,都会产生相反的结果。在这些函数中切换<
和>
,它应该纠正这个。
See here了解更多关于减去一天的信息。