From 6166ecdb7d2216423165cda08fba971a60f0c261 Mon Sep 17 00:00:00 2001 From: Nikolaj Kappler Date: Sat, 13 Jan 2024 11:14:20 +0100 Subject: [PATCH] refactor webapp/utils/time --- webapp/src/utils/time.ts | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/webapp/src/utils/time.ts b/webapp/src/utils/time.ts index 2c8779666..6e0224038 100644 --- a/webapp/src/utils/time.ts +++ b/webapp/src/utils/time.ts @@ -1,17 +1,8 @@ -export const timestampToString = (value: number, includeDays = false): string => { - const days = Math.floor(value / (24 * 60 * 60)); - const secAfterDays = value - days * (24 * 60 * 60); - const hours = Math.floor(secAfterDays / (60 * 60)); - const secAfterHours = secAfterDays - hours * (60 * 60); - const minutes = Math.floor(secAfterHours / 60); - const seconds = secAfterHours - minutes * 60; +export const timestampToString = (timestampSeconds: number, includeDays = false): string => { + const timeString = new Date(timestampSeconds * 1000).toLocaleTimeString([], { timeZone: "UTC" }); + if (!includeDays) return timeString; - const dHours = hours > 9 ? hours : "0" + hours; - const dMins = minutes > 9 ? minutes : "0" + minutes; - const dSecs = seconds > 9 ? seconds : "0" + seconds; - - if (includeDays) { - return days + " days " + dHours + ":" + dMins + ":" + dSecs; - } - return dHours + ":" + dMins + ":" + dSecs; + const secondsPerDay = 60 * 60 * 24; + const days = Math.floor(timestampSeconds / secondsPerDay); + return new Intl.RelativeTimeFormat().format(-days, "day") + " " + timeString; } \ No newline at end of file