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
numTicks={6}
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' })
}
/>
@@ -456,7 +456,7 @@ export default function Chart({
const config = METRIC_CONFIGS.find((m) => m.key === metric)
const value = point[metric] as number
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' })
return (
<div className="px-3 py-2.5">