如何在Jinja2模板中检查2个日期之间的差异是>或<1个月?

ish*_*han 7 date jinja2 ansible

我正在使用jinja2模板(使用Ansible),其中我需要检查两个日期之间的差异.我没有日期的时代,但我确实有它们的yyy-mm-dd HH:MM:ss格式(没有毫秒).所以我的问题:

1)jinja2有没有办法比较两个日期?我不想安装任何库,它必须是内置功能.

2)如果不能通过jinja2完成,是否有一个快速逻辑我可以实现比较它们?喜欢转换为时代?(记住,没有毫秒)

Aid*_*man 7

建立在@ konstantin-suvorov的答案之后,你会想要使用to_datetime 过滤器.

{{ (date1|to_datetime - date2|to_datetime).days }}
Run Code Online (Sandbox Code Playgroud)

  • 是的,它可以从Ansible 2.2开始使用 (2认同)

Kon*_*rov 3

剧本:

- hosts: localhost
  tasks:
    - template: src=date.j2 dest=date.txt
      vars:
        date1: 2016-08-04 20:00:12
        date2: 2015-10-06 21:00:12
Run Code Online (Sandbox Code Playgroud)

模板:

days {{ (date1 - date2).days }}
Run Code Online (Sandbox Code Playgroud)

输出:

days 302
Run Code Online (Sandbox Code Playgroud)