From 1bc5ae807da1d6646263cc44a39cffe00a8dfc72 Mon Sep 17 00:00:00 2001
From: Thijs Kinkhorst <thijs@kinkhorst.com>
Date: Fri, 7 Aug 2020 10:10:55 +0000
Subject: [PATCH] Better formatting of expiration in the admin interface

Previously, would show inappropriate precision, like "0.0598134 hours ago"
or "1490532.4129 hours from now" depending on the expiration date.
---
 lib/SimpleSAML/XHTML/Template.php       |  1 +
 modules/admin/templates/federation.twig | 17 +++++++----------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php
index 02b663131..1f5c81cc7 100644
--- a/lib/SimpleSAML/XHTML/Template.php
+++ b/lib/SimpleSAML/XHTML/Template.php
@@ -296,6 +296,7 @@ class Template extends Response
 
         $twig = new Twig_Environment($loader, $options);
         $twig->addExtension(new Twig_Extensions_Extension_I18n());
+        $twig->addExtension(new \Twig\Extensions\DateExtension());
 
         $twig->addFunction(new TwigFunction('moduleURL', [Module::class, 'getModuleURL']));
 
diff --git a/modules/admin/templates/federation.twig b/modules/admin/templates/federation.twig
index 0e4820b6b..2c50d7027 100644
--- a/modules/admin/templates/federation.twig
+++ b/modules/admin/templates/federation.twig
@@ -116,16 +116,13 @@
           {{ entity.entityid|escape('html') }}
           {%- endif -%}
           </a>
-          {%- if entity.expire is defined %}
-            {%- if entity.expire < date().timestamp %}
-
-          <span class="entity-expired"> (expired {{ ((date().timestamp - entity.expire) / 3600) }} hours ago)</span>
-            {%- else %}
-              {%- set expiration = (entity.expire - date().timestamp) / 3600 %}
-
-          ({% trans %}expires in {{ expiration }} hours{% endtrans %})
-            {%- endif -%}
-          {%- endif -%}
+          {% if entity.expire is defined %}
+            {% if entity.expire < date().timestamp %}
+              <span class="entity-expired"> ({% trans %}expired{% endtrans %} {{ entity.expire | time_diff }})</span>
+            {% else %}
+              <span class="entity-expires"> ({% trans %}expires{% endtrans %} {{ entity.expire | time_diff }})</span>
+            {% endif %}
+          {% endif %}
         </li>
       {% endfor %}
       </ul>
-- 
GitLab