diff options
author | Bossett <bossett@bossett.io> | 2023-09-09 01:57:22 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-08 08:57:22 -0700 |
commit | 775aa875404898ad727960b28c6b271a5a381864 (patch) | |
tree | a74830836ace051622543cc013ff39b22a234f8b /src/lib | |
parent | 6d73ed96e1d6bccfa60113727571411f06a2b172 (diff) | |
download | voidsky-775aa875404898ad727960b28c6b271a5a381864.tar.zst |
Update time.ts to handle very small or negative time differences (#1390)
* Update time.ts to handle very small or negative time differences Right now, posts can appear to be from the future with a negative time difference (i.e. -3s appears). This change defines 'NOW' as less than 5 seconds old, and returns 'now' in that case. It's not clear how localisation is handled - this may need translation. * Add test for 'now' in time/ago(...) Add tests for ago() for right now (i.e. 'now') and 10s ago to ensure the seconds case is still tested
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/strings/time.ts | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/strings/time.ts b/src/lib/strings/time.ts index 588b84459..05a60e94b 100644 --- a/src/lib/strings/time.ts +++ b/src/lib/strings/time.ts @@ -1,3 +1,4 @@ +const NOW = 5 const MINUTE = 60 const HOUR = MINUTE * 60 const DAY = HOUR * 24 @@ -13,7 +14,9 @@ export function ago(date: number | string | Date): string { ts = date } const diffSeconds = Math.floor((Date.now() - ts) / 1e3) - if (diffSeconds < MINUTE) { + if (diffSeconds < NOW) { + return `now` + } else if (diffSeconds < MINUTE) { return `${diffSeconds}s` } else if (diffSeconds < HOUR) { return `${Math.floor(diffSeconds / MINUTE)}m` |