Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit cd700e2

Browse files
author
Kerry
authored
Display relative timestamp for threads on the same calendar day (#10399)
* add test cases for <24 different day time formatting * use day instead of <24h ago to format relative date
1 parent 68fa9ae commit cd700e2

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

Diff for: src/DateUtils.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ function withinPast24Hours(prevDate: Date, nextDate: Date): boolean {
186186
return Math.abs(prevDate.getTime() - nextDate.getTime()) <= MILLIS_IN_DAY;
187187
}
188188

189+
function withinCurrentDay(prevDate: Date, nextDate: Date): boolean {
190+
return withinPast24Hours(prevDate, nextDate) && prevDate.getDay() === nextDate.getDay();
191+
}
192+
189193
function withinCurrentYear(prevDate: Date, nextDate: Date): boolean {
190194
return prevDate.getFullYear() === nextDate.getFullYear();
191195
}
@@ -229,7 +233,7 @@ export function formatFullDateNoDayNoTime(date: Date): string {
229233

230234
export function formatRelativeTime(date: Date, showTwelveHour = false): string {
231235
const now = new Date(Date.now());
232-
if (withinPast24Hours(date, now)) {
236+
if (withinCurrentDay(date, now)) {
233237
return formatTime(date, showTwelveHour);
234238
} else {
235239
const months = getMonthsArray();

Diff for: test/utils/DateUtils-test.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,18 @@ describe("formatRelativeTime", () => {
5555
dateSpy.mockRestore();
5656
});
5757

58-
it("returns hour format for events created less than 24 hours ago", () => {
58+
it("returns hour format for events created in the same day", () => {
59+
// Tuesday, 2 November 2021 11:01:00 UTC
5960
const date = new Date(2021, 10, 2, 11, 1, 23, 0);
6061
expect(formatRelativeTime(date)).toBe("11:01");
6162
});
6263

64+
it("returns month and day for events created less than 24h ago but on a different day", () => {
65+
// Monday, 1 November 2021 23:01:00 UTC
66+
const date = new Date(2021, 10, 1, 23, 1, 23, 0);
67+
expect(formatRelativeTime(date)).toBe("Nov 1");
68+
});
69+
6370
it("honours the hour format setting", () => {
6471
const date = new Date(2021, 10, 2, 11, 1, 23, 0);
6572
expect(formatRelativeTime(date)).toBe("11:01");

0 commit comments

Comments
 (0)