diff --git a/core/Piwik.php b/core/Piwik.php index a1ffc1df27e3e3ce0a621e5caa1313e6c0d76280..0fb50979bc88ba4f95cb113acf536922604c928c 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -1419,7 +1419,7 @@ class Piwik $time = sprintf("%02s", $hours) . ':' . sprintf("%02s", $minutes) . ':' . sprintf("%02s", $seconds); $milliSeconds = ($numberOfSeconds * 1000) % 1000; if ($milliSeconds) { - $time .= '.' . $milliSeconds; + $time .= '.' . sprintf("%03s", $milliSeconds); } return $time; } @@ -1435,6 +1435,8 @@ class Piwik $minutes = floor($minusDaysAndHours / 60); $seconds = $minusDaysAndHours - $minutes * 60; + + $milliSeconds = ($numberOfSeconds * 1000) % 1000; if ($years > 0) { $return = sprintf(Piwik_Translate('General_YearsDays'), $years, $days); @@ -1444,6 +1446,8 @@ class Piwik $return = sprintf(Piwik_Translate('General_HoursMinutes'), $hours, $minutes); } elseif ($minutes > 0) { $return = sprintf(Piwik_Translate('General_MinutesSeconds'), $minutes, $seconds); + } elseif ($milliSeconds > 0 && $seconds < 1) { + $return = sprintf(Piwik_Translate('General_Milliseconds'), $milliSeconds); } else { $return = sprintf(Piwik_Translate('General_Seconds'), $seconds); } diff --git a/lang/en.php b/lang/en.php index 6ccc4c8bdc086cc8c0ddda81631413cef662261f..ca5351dd74f4eee2de06a9a2196a250c76cf6909 100644 --- a/lang/en.php +++ b/lang/en.php @@ -191,6 +191,7 @@ $translations = array( 'General_HoursMinutes' => '%1$s hours %2$s min', 'General_MinutesSeconds' => '%1$s min %2$ss', 'General_Seconds' => '%ss', + 'General_Milliseconds' => '%sms', 'General_Save' => 'Save', 'General_Faq' => 'FAQ', 'General_ForExampleShort' => 'eg.', diff --git a/tests/PHPUnit/Core/PiwikTest.php b/tests/PHPUnit/Core/PiwikTest.php index fbb77415153916c3af9c9f6aca6d5fa68adc8e43..87889904dc8d3fbe39001a2f01740abf6354e640 100644 --- a/tests/PHPUnit/Core/PiwikTest.php +++ b/tests/PHPUnit/Core/PiwikTest.php @@ -89,7 +89,10 @@ class PiwikTest extends DatabaseTestCase array(86400 * 365, array('365 days 0 hours', '8760:00:00')), array((86400 * (365.25 + 10)), array('1 years 10 days', '9006:00:00')), array(1.342, array('1.342s', '00:00:01.342')), - array(.342, array('0.342s', '00:00:00.342')), + array(.342, array('342ms', '00:00:00.342')), + array(.02, array('20ms', '00:00:00.020')), + array(1.002, array('1.002s', '00:00:01.002')), + array(122.1, array('2 min 2.1s', '00:02:02.100')) ); }