Javascript 标签中的Chart.JS格式日期

Javascript 标签中的Chart.JS格式日期,javascript,chart.js,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' })),

如何在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中,有没有合适的方法来设置数据标签的日期格式,因为我使用的方法显然不受欢迎

带标签:时间戳

带标签:timestamps.mapt=>t.toLocalString


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

为了正确格式化日期,必须将解析器和tooltipFormat属性添加到所讨论的轴中。要修复上面给出的示例,请执行以下操作:

this.chart = new Chart(ctx,
  {
    type: 'line',
    data: {
      labels: timestamps,
      datasets: [
        {
          data: measurements,
        }
      ]
    },
    options: {
      scales: {
        xAxes: [ {
            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...
        ],
      }
    }
  }
);

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

为了正确格式化日期,必须将解析器和tooltipFormat属性添加到所讨论的轴中。要修复上面给出的示例,请执行以下操作:

this.chart = new Chart(ctx,
  {
    type: 'line',
    data: {
      labels: timestamps,
      datasets: [
        {
          data: measurements,
        }
      ]
    },
    options: {
      scales: {
        xAxes: [ {
            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...
        ],
      }
    }
  }
);

您得到的警告是关于原始日期字符串值的外观。我认为你发布的代码不会这样做,因为其中没有即时调用。chart.js使用即时js的日期格式规范。按照他们的说法:当为时间刻度提供数据时,Chart.js支持Moment.js接受的所有格式。如果我将标签更改为不包含.map…,警告就会消失。对,但是时间戳数组首先是什么?它来自哪里?内容的类型是什么;它们是字符串还是日期实例?时间戳是日期[]。它由timestamps=this.dataPoints.mapx=>x.timeStampDt;填充;。而度量值是由measurements=this.dataPoints.mapx=>x.measurementt填充的,您得到的警告是关于原始日期字符串值的外观。我认为你发布的代码不会这样做,因为其中没有即时调用。chart.js使用即时js的日期格式规范。按照他们的说法:当为时间刻度提供数据时,Chart.js支持Moment.js接受的所有格式。如果我将标签更改为不包含.map…,警告就会消失。对,但是时间戳数组首先是什么?它来自哪里?内容的类型是什么;它们是字符串还是日期实例?时间戳是日期[]。它由timestamps=this.dataPoints.mapx=>x.timeStampDt;填充;。而测量值由测量值=this.dataPoints.mapx=>x.measurement填充