Skip to content

Commit 40bea40

Browse files
authored
fix: Fix relativeTime plugin Math.round bug
* fix: Fix relativeTime plugin error Math.round bug * chore: add comment * chore: add 'day' will ignore decimal by dayjs at current version
1 parent 566873a commit 40bea40

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/plugin/relativeTime/index.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,15 @@ export default (o, c, d) => {
3737
let out
3838

3939
for (let i = 0; i < Tl; i += 1) {
40-
const t = T[i]
40+
let t = T[i]
4141
if (t.d) {
4242
result = isFrom
4343
? d(input).diff(instance, t.d, true)
4444
: instance.diff(input, t.d, true)
4545
}
46-
const abs = Math.ceil(Math.abs(result))
46+
const abs = Math.round(Math.abs(result))
4747
if (abs <= t.r || !t.r) {
48+
if (abs === 1) t = T[i - 1] // 1 minutes -> a minute
4849
out = loc[t.l].replace('%d', abs)
4950
break
5051
}

test/plugin/relativeTime.test.js

+12
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,28 @@ it('Time from X', () => {
1717
const T = [
1818
[0, 'second'], // a few seconds
1919
[44, 'second'], // a few seconds
20+
[44.4, 'second'], // a few seconds
21+
[44.5, 'second'], // a minute
2022
[45, 'second'], // a minute
2123
[89, 'second'], // a minute
24+
[89.4, 'second'], // a minute
25+
[89.5, 'second'], // a minute
2226
[90, 'second'], // 2 minutes
2327
[44, 'minute'], // 44 minutes
28+
[44.4, 'minute'],
29+
[44.5, 'minute'],
2430
[45, 'minute'], // an hour
2531
[89, 'minute'], // an hour
32+
[89.4, 'minute'],
33+
[89.5, 'minute'],
2634
[90, 'minute'], // 2 hours
2735
[21, 'hour'], // 21 hours
36+
[21.4, 'hour'],
37+
[21.5, 'hour'],
2838
[22, 'hour'], // a day
2939
[35, 'hour'], // a day
40+
[35.4, 'hour'],
41+
[35.5, 'hour'],
3042
[36, 'hour'], // 2 days
3143
[25, 'day'], // 25 days
3244
[26, 'day'], // a month

0 commit comments

Comments
 (0)