support weeks in number shortening
This commit is contained in:
parent
74e8fb830d
commit
085be08eea
|
@ -1485,9 +1485,11 @@ function formatSecondsToShortFormat($numSeconds) {
|
|||
$minutes = ($minutes == 0) ? '' : $minutes . 'm';
|
||||
$hours = floor(($numSeconds % 86400) / 3600);
|
||||
$hours = ($hours == 0) ? '' : $hours . 'h';
|
||||
$days = floor($numSeconds / 86400);
|
||||
$days = floor(($numSeconds % 604800) / 86400);
|
||||
$days = ($days == 0) ? '' : $days . 'd';
|
||||
return $days . $hours . $minutes . $seconds;
|
||||
$weeks = floor($numSeconds / 604800);
|
||||
$weeks = ($weeks == 0) ? '' : $weeks . 'w';
|
||||
return $weeks . $days . $hours . $minutes . $seconds;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1501,19 +1503,22 @@ function unformatShortFormatToSeconds($text) {
|
|||
return $text;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?$/', $text, $matches)) {
|
||||
if (preg_match('/^(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?$/', $text, $matches)) {
|
||||
$newValue = 0;
|
||||
if (!empty($matches[2])) {
|
||||
$newValue += $matches[2] * 86400;
|
||||
$newValue += $matches[2] * 604800;
|
||||
}
|
||||
if (!empty($matches[4])) {
|
||||
$newValue += $matches[4] * 3600;
|
||||
$newValue += $matches[4] * 86400;
|
||||
}
|
||||
if (!empty($matches[6])) {
|
||||
$newValue += $matches[6] * 60;
|
||||
$newValue += $matches[6] * 3600;
|
||||
}
|
||||
if (!empty($matches[8])) {
|
||||
$newValue += $matches[8];
|
||||
$newValue += $matches[8] * 60;
|
||||
}
|
||||
if (!empty($matches[10])) {
|
||||
$newValue += $matches[10];
|
||||
}
|
||||
return $newValue;
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ class AccountTest extends PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals(7215, unformatShortFormatToSeconds('2h15s'));
|
||||
$this->assertEquals(172815, unformatShortFormatToSeconds('2d15s'));
|
||||
$this->assertEquals(173700, unformatShortFormatToSeconds('2d15m'));
|
||||
$this->assertEquals(1209615, unformatShortFormatToSeconds('2w15s'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,4 +59,33 @@ class AccountTest extends PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals('', unformatShortFormatToSeconds(''));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests formatShortFormatToSeconds() without characters.
|
||||
*/
|
||||
function testFormatSecondsToShortFormat_basic() {
|
||||
$this->assertEquals("15s", formatSecondsToShortFormat('15'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests formatShortFormatToSeconds() with characters.
|
||||
*/
|
||||
function testFormatSecondsToShortFormat_conversion() {
|
||||
$this->assertEquals('12s', formatSecondsToShortFormat(12));
|
||||
$this->assertEquals('3m', formatSecondsToShortFormat(180));
|
||||
$this->assertEquals('2h', formatSecondsToShortFormat(7200));
|
||||
$this->assertEquals('1d', formatSecondsToShortFormat(86400));
|
||||
$this->assertEquals('2m15s', formatSecondsToShortFormat(135));
|
||||
$this->assertEquals('2h15s', formatSecondsToShortFormat(7215));
|
||||
$this->assertEquals('2d15s', formatSecondsToShortFormat(172815));
|
||||
$this->assertEquals('2d15m', formatSecondsToShortFormat(173700));
|
||||
$this->assertEquals('2w15s', formatSecondsToShortFormat(1209615));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests formatShortFormatToSeconds() with invalid values.
|
||||
*/
|
||||
function testFormatSecondsToShortFormat_invalidNumber() {
|
||||
$this->assertEquals('', formatSecondsToShortFormat(''));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue