簡體   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