From 84f91723472b3bdb079414d3123c6f27af1f418f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 13 Jul 2026 11:30:23 +0200 Subject: [PATCH] Fix secondsToTime rounding --- packages/core-utils/src/common/date.ts | 4 +++- packages/tests/src/core-utils/date.ts | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/core-utils/src/common/date.ts b/packages/core-utils/src/common/date.ts index be1e36a9c8..5a1c0daa4e 100644 --- a/packages/core-utils/src/common/date.ts +++ b/packages/core-utils/src/common/date.ts @@ -104,6 +104,8 @@ export function secondsToTime (options: { if (seconds === 0 && format !== 'full') return '0s' + seconds = Math.round(seconds) + const formatNumber = (value: number) => { if (format === 'locale-string') return value.toLocaleString() @@ -125,7 +127,7 @@ export function secondsToTime (options: { else if (minutes >= 1) time += formatNumber(minutes) + minuteSymbol else if (format === 'full') time += '00' + minuteSymbol - seconds = Math.round(seconds) % 60 + seconds %= 60 if (seconds >= 1 && seconds < 10 && format === 'full') time += '0' + seconds + secondsSymbol else if (seconds >= 1) time += formatNumber(seconds) + secondsSymbol else if (format === 'full') time += '00' diff --git a/packages/tests/src/core-utils/date.ts b/packages/tests/src/core-utils/date.ts index a0ccda7f8b..df8f897b44 100644 --- a/packages/tests/src/core-utils/date.ts +++ b/packages/tests/src/core-utils/date.ts @@ -121,6 +121,11 @@ describe('Seconds to time', function () { expect(secondsToTime(61.6)).to.equals('1m2s') expect(secondsToTime(61.51)).to.equals('1m2s') }) + + it('Carries the rounding into minutes/hours when crossing a boundary', function () { + expect(secondsToTime(59.6)).to.equals('1m') + expect(secondsToTime(3599.6)).to.equals('1h') + }) }) describe('Milliseconds to time', function () {