2012-06-09 69 views
0

我已将DateTimeField添加到我的课程中。如果start_date已经达到,我想返回True。但是我的实现只适用于日期部分。 例子:DatetimeField和现在/今天的日期和时间值的比较

Startdate = 2012-06-08 18:00:00 
currentdate 2012-06-08 19:00:00 returns False 
currentdate 2012-06-09 00:00:00 returns True 

from django.utils.datetime_safe import datetime 

class Game(models.Model): 
    start_date = models.DateTimeField('date and time game is started') 

    def is_started(self): 
     return self.start_date <= datetime.today() 

所以我的问题是:我怎么能比较日期和我场的时间价值和当前的日期和时间?

+0

我已经使用了由django default settings.py模板提供的时区。那是美国/芝加哥。我已将其更改为当地时区,现在可以使用。 –

回答

2

尝试使用datetime.now()而不是datetime.today()

class Game(models.Model): 
    start_date = models.DateTimeField('date and time game is started') 

    def is_started(self): 
     return self.start_date <= datetime.now() 
+0

对不起,但是datetime.now()不工作。我已将数据库中的时间更改为今天耗尽的值,并对其进行检查。 –

+0

它似乎不是一个Python代码的问题。似乎datetime.now()返回错误的时间。所以我必须研究如何告诉python使用服务器时间 –

0

如果我们谈论方便的存储时间在我看来,在整数的ctime好多店时间。用整数你可以执行所有你需要的数学运算而不会头疼。

import time 
time.time()