Skip to content
Extraits de code Groupes Projets
Valider 89452456 rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

refs #4540 fix time ago is not correct calculated if numberOfSeconds is negative

parent c65b1d5a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -56,6 +56,12 @@ class MetricsFormatter ...@@ -56,6 +56,12 @@ class MetricsFormatter
{ {
$numberOfSeconds = $round ? (int)$numberOfSeconds : (float)$numberOfSeconds; $numberOfSeconds = $round ? (int)$numberOfSeconds : (float)$numberOfSeconds;
$isNegative = false;
if ($numberOfSeconds < 0) {
$numberOfSeconds = -1 * $numberOfSeconds;
$isNegative = true;
}
// Display 01:45:17 time format // Display 01:45:17 time format
if ($displayTimeAsSentence === false) { if ($displayTimeAsSentence === false) {
$hours = floor($numberOfSeconds / 3600); $hours = floor($numberOfSeconds / 3600);
...@@ -66,9 +72,13 @@ class MetricsFormatter ...@@ -66,9 +72,13 @@ class MetricsFormatter
if ($centiSeconds) { if ($centiSeconds) {
$time .= '.' . sprintf("%02s", $centiSeconds); $time .= '.' . sprintf("%02s", $centiSeconds);
} }
if ($isNegative) {
$time = '-' . $time;
}
return $time; return $time;
} }
$secondsInYear = 86400 * 365.25; $secondsInYear = 86400 * 365.25;
$years = floor($numberOfSeconds / $secondsInYear); $years = floor($numberOfSeconds / $secondsInYear);
$minusYears = $numberOfSeconds - $years * $secondsInYear; $minusYears = $numberOfSeconds - $years * $secondsInYear;
$days = floor($minusYears / 86400); $days = floor($minusYears / 86400);
...@@ -94,6 +104,11 @@ class MetricsFormatter ...@@ -94,6 +104,11 @@ class MetricsFormatter
} else { } else {
$return = sprintf(Piwik::translate('General_Seconds'), $seconds); $return = sprintf(Piwik::translate('General_Seconds'), $seconds);
} }
if ($isNegative) {
$return = '-' . $return;
}
if ($isHtml) { if ($isHtml) {
return str_replace(' ', '&nbsp;', $return); return str_replace(' ', '&nbsp;', $return);
} }
......
...@@ -149,7 +149,9 @@ class Core_PiwikTest extends DatabaseTestCase ...@@ -149,7 +149,9 @@ class Core_PiwikTest extends DatabaseTestCase
array(1.002, array('1s', '00:00:01')), array(1.002, array('1s', '00:00:01')),
array(1.02, array('1.02s', '00:00:01.02')), array(1.02, array('1.02s', '00:00:01.02')),
array(1.2, array('1.2s', '00:00:01.20')), array(1.2, array('1.2s', '00:00:01.20')),
array(122.1, array('2 min 2.1s', '00:02:02.10')) array(122.1, array('2 min 2.1s', '00:02:02.10')),
array(-122.1, array('-2 min 2.1s', '-00:02:02.10')),
array(86400 * -365, array('-365 days 0 hours', '-8760:00:00'))
); );
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter