[英]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.