44 lines
1.2 KiB
TypeScript
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),
|
|
};
|
|
} |