django 比较 datetime.now 和 pub_date

Posted

技术标签:

【中文标题】django 比较 datetime.now 和 pub_date【英文标题】:django comparing datetime.now with pub_date 【发布时间】:2012-07-30 09:58:28 【问题描述】:
class event_archive(models.Model):
event_id            = models.AutoField(primary_key=True)
date_submitted      = models.DateTimeField()
event_start_time    = models.DateTimeField()
event_end_time      = models.DateTimeField()
event_closed        = models.BooleanField()

我想这样做:这是伪代码:


event = event_archive.objects.all()
for e in event:
if event_start_time > datetime_now()
    print "upcoming";
elif event_start_time < datetime_now() < event_end_time
    print "now";
elif event_end_time < datetime_now() < **24 hours passed the event ends**
    print "%d hours ago",%hour;
elif event_end_time < datetime_now() > **24 hours passed the event ends** and event_end_time < datetime_now() < **48 hours passed the event ends**
    print "yesterday";
else
    print "recorded"
endif;
endfor;

** 我是编程和python方面的新手..如果我问了非常愚蠢的问题或没有明确提出问题,请不要介意..在粗线中我不确定我应该使用什么??

我需要帮助来编写我的 django 视图函数..任何帮助..

【问题讨论】:

【参考方案1】:

如果您对模板执行此操作,请使用专为此任务设计的 timeuntiltimesince 过滤器。

【讨论】:

【参考方案2】:
import datetime

if some_datetime > datetime.datetime.now() + datetime.timedelta(days=10):
    return "some_date is greater than the current datetime plus 10 days"

查看 timedelta 文档:http://docs.python.org/library/datetime.html#datetime.timedelta

【讨论】:

【参考方案3】:
from datetime import datetime

datetime_now = datetime.now()

'datetime_now' 变量现在具有当前时间。

使用此变量与事件开始时间进行比较,并针对该条件打印或执行相关操作。

例如:

if event_start_time > datetime_now:
  print "upcoming"

【讨论】:

我陷入了 elif 条件:ex:elif event_end_time 24 小时后事件结束 print "%d hours ago",%hour;

以上是关于django 比较 datetime.now 和 pub_date的主要内容,如果未能解决你的问题,请参考以下文章

django 1.4 timezone.now() 与 datetime.datetime.now()

Django的模板层简介

无法比较天真和有意识的 datetime.now() <= challenge.datetime_end

Django:模型对象保存中的 datetime.now() 时间不一致

Django - 上一小时的所有对象

模型中的 Django default=datetime.now() 在 uwsgi 重置后总是保存相同的日期时间