diff --git a/src/DateUtils.ts b/src/DateUtils.ts index 9116a8047d..0e39205916 100644 --- a/src/DateUtils.ts +++ b/src/DateUtils.ts @@ -186,6 +186,10 @@ function withinPast24Hours(prevDate: Date, nextDate: Date): boolean { return Math.abs(prevDate.getTime() - nextDate.getTime()) <= MILLIS_IN_DAY; } +function withinCurrentDay(prevDate: Date, nextDate: Date): boolean { + return withinPast24Hours(prevDate, nextDate) && prevDate.getDay() === nextDate.getDay(); +} + function withinCurrentYear(prevDate: Date, nextDate: Date): boolean { return prevDate.getFullYear() === nextDate.getFullYear(); } @@ -229,7 +233,7 @@ export function formatFullDateNoDayNoTime(date: Date): string { export function formatRelativeTime(date: Date, showTwelveHour = false): string { const now = new Date(Date.now()); - if (withinPast24Hours(date, now)) { + if (withinCurrentDay(date, now)) { return formatTime(date, showTwelveHour); } else { const months = getMonthsArray(); diff --git a/test/utils/DateUtils-test.ts b/test/utils/DateUtils-test.ts index 9b1fe4d870..0053d4a4ac 100644 --- a/test/utils/DateUtils-test.ts +++ b/test/utils/DateUtils-test.ts @@ -55,11 +55,18 @@ describe("formatRelativeTime", () => { dateSpy.mockRestore(); }); - it("returns hour format for events created less than 24 hours ago", () => { + it("returns hour format for events created in the same day", () => { + // Tuesday, 2 November 2021 11:01:00 UTC const date = new Date(2021, 10, 2, 11, 1, 23, 0); expect(formatRelativeTime(date)).toBe("11:01"); }); + it("returns month and day for events created less than 24h ago but on a different day", () => { + // Monday, 1 November 2021 23:01:00 UTC + const date = new Date(2021, 10, 1, 23, 1, 23, 0); + expect(formatRelativeTime(date)).toBe("Nov 1"); + }); + it("honours the hour format setting", () => { const date = new Date(2021, 10, 2, 11, 1, 23, 0); expect(formatRelativeTime(date)).toBe("11:01");