标签中Chart.JS格式的日期

时间:2019-01-23 19:52:05

标签: javascript chart.js

如何在Chart.JS的数据点标签中设置日期格式?

我已经尝试过了:

this.chart = new Chart(ctx,
  {
    data: {
      labels: timestamps 
                .map(t => t.toLocaleString([], { month: '2-digit', day: '2-digit', year: '2-digit', hour: '2-digit', minute: '2-digit' })),
      datasets: [
        {
          data: measurements
        }, 
        //etc...
]}});

它可以工作,但是我收到Moment.JS警告消息:

  

弃用警告:提供的值不是公认的RFC2822或ISO格式...不建议使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中将其删除。

由于显然不鼓励使用我使用的方法,因此是否有适当的方法来格式化Chart.JS中数据标签的日期?

使用labels: timestamps

chart showing default date format

使用labels: timestamps.map(t => t.toLocaleString(...)

chart showing localeString format

1 个答案:

答案 0 :(得分:1)

通过检查Chart.js提供的a sample chart的源HTML文件,我找到了答案。

为了正确设置日期格式,必须将解析器和tooltipFormat属性添加到相关轴。要修正上面给出的示例:

this.chart = new Chart(ctx,
  {
    type: 'line',
    data: {
      labels: timestamps,
      datasets: [
        {
          data: measurements,
        }
      ]
    },
    options: {
      scales: {
        xAxis: [
          display: true,
          type: 'time'
          time: {
            parser: 'MM/DD/YYYY HH:mm',
            tooltipFormat: 'll HH:mm',
            unit: 'day',
            unitStepSize: 1,
            displayFormats: {
              'day': 'MM/DD/YYYY'
            }
          }
        ],
        yAxis: [
          // etc...
        ],
      }
    }
  }
);