Repository navigation
Cannot get format=relative to display seconds #269
Description
Activity
Sounds like this is a bug. Following the code I can't see where there's a problem. If you would kindly submit a PR with some failing tests we can investigate further.
Of the non-deprecated formats, only
format="duration"is showing and updating with seconds precision.
The default (noformatattribute) andformat="relative"doesn't update until after 1 min has passed.durationis not a replacement forrelativebecause it doesn't have the prefix/suffix: "X seconds" vs "X seconds ago".Tested with v4.3.1.
I think I found the issue debugging with devtools:
update() { relative-time-element/src/relative-time-element.ts
Lines 444 to 445 in 7e40806
} else if (format === 'relative') { newText = this.#getRelativeFormat(duration) #getRelativeFormat(duration: Duration): string { relative-time-element/src/relative-time-element.ts
Lines 182 to 184 in 7e40806
if (unit === 'second' && int < 10) { return relativeFormat.format(0, 'second') } Times in the past (like -X seconds) would always enter the if branch and format the value
0("now") instead of the number of seconds.Maybe what was meant is:
if (unit === 'second' && Math.abs(int) < 10) { return relativeFormat.format(0, 'second'); }
Such that we don't show "now", 1, 2, 3..., 9, but instead go "now", 10, 11, ...
I'm not sure though, I think that's unspecified behavior.
I traced it back to 6118a16.
Of the non-deprecated formats, only format="duration" is showing and updating with seconds precision. The default (no format attribute) and format="relative" doesn't update until after 1 min has passed.
@keithamus I can confirm that second precision only work with
format="duration". Also, thanks @rhcarvalho for diving into the code. Are you using another in the meantime?@thiagomajesk I think I chose some format that worked well enough and moved on.
I cannot get
relativeformat to display second level precision. The docs suggest that the default precision is seconds and this table suggests that with format relative i should see seconds. But I only seenowuntil 1 minute has passed.format=elapsedworks as i expect.