繁体   English   中英

如何比较两个不同的日期?

[英]How to compare two different Dates?

我创建了一个时间戳,该时间戳在数据库内部10分钟后完成,在模板内,我还创建了一个Jinja设置变量 {% set now = moment().format('DD-MM-YYYY hh:mm:ss') %}

时间戳记日期为: 23-05-2017 19:50:00

我当前的日期是: 23-5-2017 19:42:22

如果我想将时间戳与当前日期进行比较,则即使当前日期小于时间戳,我也会每次都为真。

这是代码:

{% set now = moment().format('DD-MM-YYYY hh:mm:ss') %}
<h4>{{moment().format('DD-MM-YYYY HH:mm')}}</h4>
<h4>{{appo.timestamp.strftime('%d-%m-%Y %H:%M:%S')}}</h4>

{% if now < appo.timestamp.strftime('%d-%m-%Y %H:%M:%S') %}

  <h5>The appointment not finished yet.</h5>

{% elif now > appo.timestamp.strftime('%d-%m-%Y %H:%M:%S')  %}

  <h5>The appointment already finished.</h5>

{% endif %}

我总是得到约会完成。

请,任何建议!

我已经解决了问题。

我刚刚制作了一个自定义模板过滤器,用于检查约会状态是否完成。

这是代码:

@app_route.app_template_filter('getstatus')
def getstatus(id):
    appointment = Appointment.query.filter_by(id=int(id)).first_or_404()
    date = datetime.now()
    if date > appointment.end_time:
        return True
    elif date < appointment.end_time:
        return False
environment.filters['getstatus'] = getstatus

如上所示,我正在比较对象与对象,因此,如果当前日期datetime.now大于约会。end_time返回true ,则意味着约会已完成,否则未完成。

我发现datetime对象可以创建一个新的datetime对象:

In [1]: import datetime

In [2]: wasNow = datetime.datetime.now()

In [3]: wasNow
Out[3]: datetime.datetime(2017, 7, 28, 14, 17, 21, 889530)

In [4]: wasNow.now()
Out[4]: datetime.datetime(2017, 7, 28, 14, 17, 30, 105077)

现在,您在jinja模板中有了一个日期对象,便可以从现有对象中创建一个新的datetime对象,并将其进行比较,如下所示:

{% if item.date < item.date.now() %}
  <p> This will display if the item.date is before item.date.now(). </p>
{% endif %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM