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