fix: use UTC hours for intra-day chart labels to match server timezone buckets

Backend returns timestamps already bucketed in site timezone but as
UTC values. Using getUTCHours/getUTCMinutes prevents the browser
from adding its local timezone offset.
This commit is contained in:
Usman Baig
2026-03-22 15:16:20 +01:00
parent bd023e76f5
commit e626350f14

View File

@@ -439,7 +439,7 @@ export default function Chart({
<VisxXAxis <VisxXAxis
numTicks={6} numTicks={6}
formatLabel={interval === 'minute' || interval === 'hour' formatLabel={interval === 'minute' || interval === 'hour'
? (d) => d.toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit' }) ? (d) => `${String(d.getUTCHours()).padStart(2, '0')}:${String(d.getUTCMinutes()).padStart(2, '0')}`
: (d) => d.toLocaleDateString('en-GB', { day: 'numeric', month: 'short' }) : (d) => d.toLocaleDateString('en-GB', { day: 'numeric', month: 'short' })
} }
/> />
@@ -456,7 +456,7 @@ export default function Chart({
const config = METRIC_CONFIGS.find((m) => m.key === metric) const config = METRIC_CONFIGS.find((m) => m.key === metric)
const value = point[metric] as number const value = point[metric] as number
const title = interval === 'minute' || interval === 'hour' const title = interval === 'minute' || interval === 'hour'
? dateObj.toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit' }) ? `${String(dateObj.getUTCHours()).padStart(2, '0')}:${String(dateObj.getUTCMinutes()).padStart(2, '0')}`
: dateObj.toLocaleDateString('en-GB', { weekday: 'short', day: 'numeric', month: 'short' }) : dateObj.toLocaleDateString('en-GB', { weekday: 'short', day: 'numeric', month: 'short' })
return ( return (
<div className="px-3 py-2.5"> <div className="px-3 py-2.5">