Files
bifrost/ui/lib/utils/timeRange.ts
Beyhan Oğur 880f412e2c first commit
2026-04-26 21:52:23 +03:00

44 lines
1.2 KiB
TypeScript

export const TIME_PERIODS = [
{ label: "Last hour", value: "1h" },
{ label: "Last 6 hours", value: "6h" },
{ label: "Last 24 hours", value: "24h" },
{ label: "Last 7 days", value: "7d" },
{ label: "Last 30 days", value: "30d" },
];
export type TimePeriod = (typeof TIME_PERIODS)[number]["value"];
/** Returns a fresh { from, to } Date pair for the given relative period string. */
export function getRangeForPeriod(period: string): { from: Date; to: Date } {
const to = new Date();
const from = new Date(to.getTime());
switch (period) {
case "1h":
from.setHours(from.getHours() - 1);
break;
case "6h":
from.setHours(from.getHours() - 6);
break;
case "24h":
from.setHours(from.getHours() - 24);
break;
case "7d":
from.setDate(from.getDate() - 7);
break;
case "30d":
from.setDate(from.getDate() - 30);
break;
default:
from.setHours(from.getHours() - 1);
}
return { from, to };
}
/** Returns unix timestamps (seconds) for the given relative period string. */
export function getUnixRangeForPeriod(period: string): { start: number; end: number } {
const { from, to } = getRangeForPeriod(period);
return {
start: Math.floor(from.getTime() / 1000),
end: Math.floor(to.getTime() / 1000),
};
}