Switch rounding to flooring in Temporal::getRelativeDate

- Add tests for regression
This commit is contained in:
Hypolite Petovan 2022-12-28 00:32:26 -05:00
parent 53c0fffbec
commit a1dc6e2417
2 changed files with 19 additions and 1 deletions

View file

@ -361,7 +361,7 @@ class Temporal
foreach ($a as $secs => $str) {
$d = $etime / $secs;
if ($d >= 1) {
$r = round($d);
$r = floor($d);
// translators - e.g. 22 hours ago, 1 minute ago
if($isfuture){
$format = DI::l10n()->t('in %1$d %2$s');

View file

@ -60,5 +60,23 @@ class TemporalTest extends TestCase
Temporal::getRelativeDate($minuteAgo, true, $clock),
sprintf($format, 1, DI::l10n()->t('minute'))
);
$almostAnHourAgoInterval = new \DateInterval('PT59M59S');
$almostAnHourAgoInterval->invert = 1;
$almostAnHourAgo = (clone $clock->now())->add($almostAnHourAgoInterval);
self::assertEquals(
Temporal::getRelativeDate($almostAnHourAgo->format(DateTimeFormat::MYSQL), true, $clock),
sprintf($format, 59, DI::l10n()->t('minutes'))
);
$anHourAgoInterval = new \DateInterval('PT1H');
$anHourAgoInterval->invert = 1;
$anHourAgo = (clone $clock->now())->add($anHourAgoInterval);
self::assertEquals(
Temporal::getRelativeDate($anHourAgo->format(DateTimeFormat::MYSQL), true, $clock),
sprintf($format, 1, DI::l10n()->t('hour'))
);
}
}