Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date Ansible:比较最后一小时两个日期之间的差异_Date_Amazon Ec2_Time_Ansible_Jinja2 - Fatal编程技术网

Date Ansible:比较最后一小时两个日期之间的差异

Date Ansible:比较最后一小时两个日期之间的差异,date,amazon-ec2,time,ansible,jinja2,Date,Amazon Ec2,Time,Ansible,Jinja2,有一种方法可以使用ansible\u date\u time 还有一个日期(aws ec2发布时间),所以我可以知道它是否发生在最后一个小时 我有以下varec2发布时间:2018-01-04T15:57:52+00:00 我知道我可以用以下方法(从和)比较天: 如果我得到0我会知道它发生在同一天,但是如果日期之间的差异1小时(在同一天),我正在寻找一种方法来判断是真是假 有一个过滤器,可以用这个或优雅的方式编写,或者只使用shell(比如)?通过减去两个日期,可以得到一个 您可以使用以秒为单位

有一种方法可以使用
ansible\u date\u time
还有一个日期(aws ec2发布时间),所以我可以知道它是否发生在最后一个小时

我有以下var
ec2发布时间:2018-01-04T15:57:52+00:00

我知道我可以用以下方法(从和)比较

如果我得到0我会知道它发生在同一天,但是如果日期之间的差异1小时(在同一天),我正在寻找一种方法来判断是真是假


有一个过滤器,可以用这个或优雅的方式编写,或者只使用shell(比如)?

通过减去两个日期,可以得到一个

您可以使用以秒为单位获得精确的差值。添加一些基本算法以获得完整小时数:

---
- hosts: localhost
  gather_facts: no
  connection: local
  vars:
    date_later: 2018-01-05 08:30:00
    date_earlier: 2018-01-05 06:50:00
  tasks:
    - debug:
        msg: "{{ ( (date_later - date_earlier).total_seconds() / 3600 ) | int }}"
返回:

ok: [localhost] => {
    "msg": "1"
}

在您想要的条件下使用上述表达式。

谢谢@techraf,这对我有用
(ansible_date_time.iso8601[:19]|到_datetime(“%Y-%m-%dT%H:%m:%S”)-ec2_启动时间[:19]|到_datetime(“%Y-%m-%dT%H:%m:%S”)。总秒数()/3600 | int
ok: [localhost] => {
    "msg": "1"
}