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

Chart.js 3.9.1设置X轴为time类型时图表无法显示的问题

问题解决:Chart.js 时间轴报错 "This method is not implemented"

问题原因

Chart.js 3.x版本开始,时间轴(time scale)不再内置日期处理功能,必须引入第三方日期适配器(比如基于Moment.js或date-fns的适配器)才能解析和格式化日期,否则会抛出你遇到的这个错误。

解决方案步骤

  1. 引入日期库(如Moment.js)和对应的Chart.js日期适配器
  2. 确保脚本加载顺序:先加载日期库,再加载适配器,最后加载Chart.js

修改后的完整代码

HTML

<!-- 加载Moment.js日期库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
<!-- 加载Chart.js的Moment适配器 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-adapter-moment/1.0.0/chartjs-adapter-moment.min.js"></script>
<!-- 加载Chart.js核心库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js" integrity="sha512-ElRFoEQdI5Ht6kZvyzXhYG9NqjtkmlkfYk0wr6wHxU9JEHakS7UJZNeml5ALk+8IKlU6jDgMabC3vkumRokgJA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<canvas id="mychart"></canvas>

JavaScript

let data = [12, 14, 13, 18, 21, 22, 25];
let labels = ["2017-01-20", "2017-01-22", "2017-01-24", "2017-01-26", "2017-01-28", "2017-01-30", "2017-02-01"];

let options = {
  scales: {
    x: {
      type: 'time', // 现在可正常启用
      time: {
        unit: 'day'
      }
    },
    y: { // 原代码的y0改为y,确保Y轴配置生效
      ticks: {
        min: 0
      }
    },
  },
};

let chartData = {
    labels: labels,
    datasets: [{
      data: data,
      label: 'Amount of Stuff',
      backgroundColor: '#035e7b',
      borderColor: '#035e7b', // 补充边框色,折线显示更清晰
      fill: false
    }]
};

let ctx = document.getElementById('mychart').getContext('2d');

new Chart(ctx, {
  data: chartData,
  type: 'line',
  options: options,
});

额外说明

  • 若不想使用Moment.js,也可替换为date-fns适配器,只需更换对应的加载脚本即可
  • 原代码中Y轴配置键为y0,这会导致配置不生效,需改为默认的y

内容的提问来源于stack exchange,提问作者Pawich S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:35:23