diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2014-01-24 04:53:56 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2014-01-24 04:53:56 +0400 |
commit | 89452456103674637c863e38e461946a45a53a41 (patch) | |
tree | 0ec7f9d1d6275a834ca2282bdfd0b86cbeacd375 /core/MetricsFormatter.php | |
parent | c65b1d5a64b2fe199b0ce897af258a62cee2551d (diff) |
refs #4540 fix time ago is not correct calculated if numberOfSeconds is negative
Diffstat (limited to 'core/MetricsFormatter.php')
-rw-r--r-- | core/MetricsFormatter.php | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/core/MetricsFormatter.php b/core/MetricsFormatter.php index 5fd464ff8d..8f58e52588 100644 --- a/core/MetricsFormatter.php +++ b/core/MetricsFormatter.php @@ -56,6 +56,12 @@ class MetricsFormatter { $numberOfSeconds = $round ? (int)$numberOfSeconds : (float)$numberOfSeconds; + $isNegative = false; + if ($numberOfSeconds < 0) { + $numberOfSeconds = -1 * $numberOfSeconds; + $isNegative = true; + } + // Display 01:45:17 time format if ($displayTimeAsSentence === false) { $hours = floor($numberOfSeconds / 3600); @@ -66,9 +72,13 @@ class MetricsFormatter if ($centiSeconds) { $time .= '.' . sprintf("%02s", $centiSeconds); } + if ($isNegative) { + $time = '-' . $time; + } return $time; } $secondsInYear = 86400 * 365.25; + $years = floor($numberOfSeconds / $secondsInYear); $minusYears = $numberOfSeconds - $years * $secondsInYear; $days = floor($minusYears / 86400); @@ -94,6 +104,11 @@ class MetricsFormatter } else { $return = sprintf(Piwik::translate('General_Seconds'), $seconds); } + + if ($isNegative) { + $return = '-' . $return; + } + if ($isHtml) { return str_replace(' ', ' ', $return); } |