后台按北京时间早上八点统计,前台图上那根柱子落在零点,客服照着图解释流量高峰,时间整体错开八小时。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,接口传的是不带时区的 2026-11-13 08:00:00 字符串,ECharts 按浏览器本地时区解析,用户在 UTC 环境里就前移八小时。传时间戳时还要确认单位是秒还是毫秒。
「ECharts 时间轴时区」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
xAxis: {
type: 'time',
axisLabel: { formatter: v => dayjs(v).utcOffset(8).format('HH:mm') }
}
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
具体做法是,接口统一传带时区的时间戳 毫秒为单位;轴标签用 formatter 固定时区格式化 不交给浏览器猜;把系统时区改成 UTC 打开页面 核对柱子落点。
最后用这个标准收尾,系统切到 UTC 后柱子仍落在八点,与后台报表一致。
