You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chart.js图表X轴未显示日期仅显示时间的问题求助

解决Chart.js X轴显示重复时间而非日期的问题

嘿,我刚好碰到过类似的问题,咱们一步步来排查解决!

首先,核心问题大概率出在时间轴的单位配置或者日期数据的解析上,咱们从这两个方向入手:

1. 确保日期数据被moment正确解析

如果你的日期字符串不是moment默认能识别的格式,一定要显式指定解析规则,不然Chart.js可能会把日期当成同一天的不同时间来处理,导致X轴重复显示小时。比如:

// 错误示例:依赖moment自动解析,可能出错
data: [{x: '2018-02-01', y: 10}, ...]

// 正确示例:显式指定格式,确保moment正确识别为日期
data: [{x: moment('2018-02-01', 'YYYY-MM-DD'), y: 10}, ...]

2. 强制X轴使用「天」作为时间单位

即使数据间隔是天,Chart.js有时候会自动切换到更小的单位(比如小时),这时候咱们可以强制指定unit为'day',同时配置对应的显示格式:

options: {
    scales: {
        xAxes: [{
            type: 'time',
            time: {
                unit: 'day', // 强制按天刻度显示
                displayFormats: {
                    day: 'YYYY-MM-DD' // 设置日期的显示格式
                },
                tooltipFormat: 'YYYY-MM-DD' // 鼠标悬停时的日期格式
            },
            // 可选:添加轴标签
            scaleLabel: {
                display: true,
                labelString: '日期'
            }
        }]
    }
}

3. 检查数据点的时间间隔

如果你的所有数据点都集中在同一天,那Chart.js自然会显示小时刻度。所以要确保数据点的日期是分散在不同天数的,这样才会触发日期显示。

最后确认依赖加载顺序

一定要先加载moment.js,再加载Chart.js,不然Chart.js的时间轴功能会失效:

<script src="moment.min.js"></script>
<script src="Chart.min.js"></script>

按照上面的步骤调整后,你的X轴应该就能正常显示2018-02-01这类日期格式啦!

内容的提问来源于stack exchange,提问作者Naveed Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:52:02