2016-08-04 6 views
3

私はjinja2テンプレート(Ansible付き)を使用しています。その中で2つの日付の違いを確認する必要があります。私は日付のエポックを持っていないが、私はyyy-mm-dd HH:MM:ss形式(ミリ秒単位ではない)でそれらを持っている。だから私の質問:Jinja2テンプレートで2つの日付の差が> 1か<1か月かどうかを確認するにはどうすればいいですか?

1)jinja2で2つの日付を比較する方法はありますか?私はライブラリをインストールしたくない、それは組み込みの機能でなければならない。

2)jinja2で実行できない場合は、それらを比較する実装が可能な素早いロジックがありますか?エポックに変換するのと同じですか? (、何ミリ秒覚えてない)

答えて

0

脚本:

- 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 

テンプレート:

days {{ (date1 - date2).days }} 

出力:@のコンスタンチン・スヴォーロフの答えに

days 302 
+0

: - 名前:日付 デバッグ:MSG = "{{(ansible_winrm_certificate_expires - ansible_date_time.iso8601).days}}" 私が取得: は{ "失敗":真、 "msg": "({{ancers_winrm_certificate_expires - ansible_date_time.date}}): - : 'unicode'と 'unicode'のサポートされていないオペランドタイプ"} – ishan

+0

変数が文字列の場合は、ここから運が良かった...カスタムフィルタがここの唯一の方法だと思います。 –

4

ビル、あなたがしたいと思いますto_datetimefilterを使用してください。タスクの

{{ (date1|to_datetime - date2|to_datetime).days }} 
+2

ええ、それはAnsible 2.2から利用可能です –

関連する問題