我创建了一个时间戳,在我的数据库中10分钟后完成,在我的模板中我还创建了一个 jinja set变量 {% 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 %}
我总是约会结束。
请,任何建议!!!
答案 0 :(得分:1)
我已经解决了这个问题。
我刚制作了一个自定义模板过滤器,用于检查约会的状态是否已完成。
以下是代码:
@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 大于 appointment.end_time ,则返回 true 表示约会已完成,否则未完成。
答案 1 :(得分:1)
我发现datetime对象可以创建一个新的datetime对象:
mutate_at
现在您在jinja模板中有一个日期对象,您可以从现有对象创建一个新的日期时间对象并将其比较如下:
f1 <- function(x){
class(x) <- 'comma'
return(x)
}
df_central_database %>%
mutate_at(vars(contains('Summ')), funs(f1)) %>%
str()