Skip to main content
 首页 » 编程设计

python之Django:仅显示今天的条目时的时区问题

2025年05月04日22zfyouxi

我试图获取今天的所有条目,然后根据用户的时区将其显示给该用户。它们通过日期时间字段存储。我遇到的问题是所有时间都存储在 GMT 中,所以当我提取今天的记录时,它们在日期方面交叉,所以一些条目可能是 7 月 3 日,而一些条目可能是 7 月 4 日。然后当它通过时区标签显示给用户时,什么不是(比如东部时间),用户将看到昨天的条目以及今天的条目。我有任何标签或不同的方法可以用来解决这个问题。

View .py

 def get_entry(request): 
    start_date = timezone.now().date() 
    end_date = start_date + timedelta( days=1 ) 
    todays_entry = game.objects.filter(date__range=(start_date,end_date)).order_by('date').all() 
    return render(request, 'home.html', {'todays_entry':todays_entry}) 

模板.py

 {% load tz %} 
 {% localtime on %} 
   {% for x in todays_entry %} 
      {{x.date}}......... 
   {% endfor %} 
 {% endlocaltime %} 

输出类似于

July 3, 2015, 8:05 p.m,  
July 3, 2015, 9:05 p.m,  
July 4, 2015, 1:05 p.m,  
July 4, 2015, 1:05 p.m 

我真正想要的只是今天的东西......

请您参考如下方法:

你可以试试:

def get_entry(request): 
   today = datetime.datetime.now().today() 
   todays_entry = game.objects.filter(date__year=today.year, date__month=today.month, date__day=today.day) 
   return render(request, 'home.html', {'todays_entry':todays_entry}) 

过滤后不需要.all()