Javascript 标签中的Chart.JS格式日期
如何在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' })),
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填充