From 8ce120b74d4b3f72c4cd4aba722381f3bdbc7198 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Thu, 9 Jul 2020 20:19:59 +0200 Subject: [PATCH] Round values for relative time instead of flooring (#6225) --- src/common/datetime/relative_time.ts | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/common/datetime/relative_time.ts b/src/common/datetime/relative_time.ts index 8eaafb4ad3..cc414b1e12 100644 --- a/src/common/datetime/relative_time.ts +++ b/src/common/datetime/relative_time.ts @@ -20,31 +20,24 @@ export default function relativeTime( let delta = (compareTime.getTime() - dateObj.getTime()) / 1000; const tense = delta >= 0 ? "past" : "future"; delta = Math.abs(delta); - - let timeDesc; + let roundedDelta = Math.round(delta); + let unit = "week"; for (let i = 0; i < tests.length; i++) { - if (delta < tests[i]) { - delta = Math.floor(delta); - timeDesc = localize( - `ui.components.relative_time.duration.${langKey[i]}`, - "count", - delta - ); + if (roundedDelta < tests[i]) { + unit = langKey[i]; break; } delta /= tests[i]; + roundedDelta = Math.round(delta); } - if (timeDesc === undefined) { - delta = Math.floor(delta); - timeDesc = localize( - "ui.components.relative_time.duration.week", - "count", - delta - ); - } + const timeDesc = localize( + `ui.components.relative_time.duration.${unit}`, + "count", + roundedDelta + ); return options.includeTense === false ? timeDesc