]> git.mxchange.org Git - friendica.git/commitdiff
Issue 12367: Calculate relative date on "date" level instead of "datetime"
authorMichael <heluecht@pirati.ca>
Sun, 11 Dec 2022 03:24:36 +0000 (03:24 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 11 Dec 2022 03:24:36 +0000 (03:24 +0000)
src/Module/Moderation/BaseUsers.php
src/Util/Temporal.php

index 62e41c58c92f1a6ea436e0d274bb538410834c06..656a9fba4da0edd7b3747034f7bba3c8e8988189 100644 (file)
@@ -136,9 +136,9 @@ abstract class BaseUsers extends BaseModeration
                        $user['account_type_raw'] = ($user['page_flags_raw'] == 0) ? $user['account-type'] : -1;
                        $user['account_type']     = ($user['page_flags_raw'] == 0) ? $account_types[$user['account-type']] : '';
 
-                       $user['register_date'] = Temporal::getRelativeDate($user['register_date']);
-                       $user['login_date']    = Temporal::getRelativeDate($user['last-activity']);
-                       $user['lastitem_date'] = Temporal::getRelativeDate($user['last-item']);
+                       $user['register_date'] = Temporal::getRelativeDate($user['register_date'], null, false);
+                       $user['login_date']    = Temporal::getRelativeDate($user['last-activity'], null, false);
+                       $user['lastitem_date'] = Temporal::getRelativeDate($user['last-item'], null, false);
                        $user['is_admin']      = in_array($user['email'], $adminlist);
                        $user['is_deletable']  = !$user['account_removed'] && intval($user['uid']) != $this->session->getLocalUserId();
                        $user['deleted']       = $user['account_removed'] ? Temporal::getRelativeDate($user['account_expires_on']) : false;
index 3946550628865706d88d5e5e85f41ea7656470b1..4de2288b877adf1abcfcb3ba8838b51aa4c78985 100644 (file)
@@ -305,13 +305,14 @@ class Temporal
         * Results relative to current timezone.
         * Limited to range of timestamps.
         *
-        * @param string $posted_date MySQL-formatted date string (YYYY-MM-DD HH:MM:SS)
-        * @param string $format (optional) Parsed with sprintf()
+        * @param string $posted_date       MySQL-formatted date string (YYYY-MM-DD HH:MM:SS)
+        * @param string $format            (optional) Parsed with sprintf()
+        * @param bool   $compare_date_time Compare date (false) or datetime (true). "true" is default.
         *    <tt>%1$d %2$s ago</tt>, e.g. 22 hours ago, 1 minute ago
         *
         * @return string with relative date
         */
-       public static function getRelativeDate(string $posted_date = null, string $format = null): string
+       public static function getRelativeDate(string $posted_date = null, string $format = null, bool $compare_date_time = true): string
        {
                if (empty($posted_date) || $posted_date <= DBA::NULL_DATETIME) {
                        return DI::l10n()->t('never');
@@ -324,11 +325,18 @@ class Temporal
                        return DI::l10n()->t('never');
                }
 
+               $now = time();
+       
+               if (!$compare_date_time) {
+                       $now = mktime(0, 0, 0, date('m', $now), date('d', $now), date('Y', $now));
+                       $abs = mktime(0, 0, 0, date('m', $abs), date('d', $abs), date('Y', $abs));
+               }
+
                $isfuture = false;
-               $etime = time() - $abs;
+               $etime = $now - $abs;
 
                if ($etime < 1 && $etime >= 0) {
-                       return DI::l10n()->t('less than a second ago');
+                       return $compare_date_time ? DI::l10n()->t('less than a second ago') : DI::l10n()->t('today');
                }
 
                if ($etime < 0){