import { format, addHours } from "date-fns"; import { TZDate } from "@date-fns/tz"; import { UTCDate, utc } from "@date-fns/utc"; export function dateFromInput(input: { dateQuery: string, timezone: string }) { let t: string; if (input.dateQuery == "today") { t = new Date(); return format(t, "yyyy-MM-dd", { in: input.timezone }); } else { t = new UTCDate(input.dateQuery); return format(t, "yyyy-MM-dd", { in: utc }); } } function generateHour(d, t) { const dt: TZDate = addHours(d, t); return { date: format(dt, 'yyyy-MM-dd'), time: parseInt(format(dt, 'H')), }; } export function hoursListInTimezone(input: { dateQuery: string, timezone: string }) { const dateStr = dateFromInput(input); const d = new TZDate(dateStr, input.timezone); return Array.from({ length: 24 }, (_, t) => generateHour(d, t) ); }