Javascript Chart.js v2-如何在工具提示中设置与数据集相关的日期格式
在Chart.js(v2.7.3)中,我有一个包含多个数据集的折线图。我希望在工具提示中以“MMM”格式显示其中一个数据集的日期(每个月有一个点),并以“d MMM”格式显示所有其他数据集的日期(每个月有不同数量的点) 我尝试使用tooltipFormat函数,如下所示:Javascript Chart.js v2-如何在工具提示中设置与数据集相关的日期格式,javascript,chart.js,Javascript,Chart.js,在Chart.js(v2.7.3)中,我有一个包含多个数据集的折线图。我希望在工具提示中以“MMM”格式显示其中一个数据集的日期(每个月有一个点),并以“d MMM”格式显示所有其他数据集的日期(每个月有不同数量的点) 我尝试使用tooltipFormat函数,如下所示: time: { parser: timeFormat, round: 'day', tooltipFormat: function(tooltipItem, data) { var f
time: {
parser: timeFormat,
round: 'day',
tooltipFormat: function(tooltipItem, data) {
var f = 'D MMM';
if(tooltipItem.datasetIndex==0){
f = 'MMM';
}
return f;
},
unit: 'month',
displayFormats: {
day: 'MMM',
month: 'MMM'
}
}
但是,通过上述操作,每当我将鼠标悬停在任何直线上的某个点上时,都会出现以下错误:
Uncaught TypeError: format.replace is not a function
at expandFormat (moment-with-locales.js:626)
at formatMoment (moment-with-locales.js:611)
at Moment.format (moment-with-locales.js:3351)
at ChartElement.getLabelForIndex (Chart.js:14331)
at createTooltipItem (Chart.js:8354)
at ChartElement.update (Chart.js:8735)
at ChartElement.handleEvent (Chart.js:9097)
at Chart.eventHandler (Chart.js:4704)
at listener (Chart.js:4633)
at HTMLCanvasElement.proxies.(anonymous function) (https://cdn.jsdelivr.net/npm/chart.js@2.7.3/dist/Chart.js:10970:4)
这很好,但会将所有工具提示设置为“D MMM”:
time: {
parser: timeFormat,
round: 'day',
tooltipFormat: 'D MMM',
unit: 'month',
displayFormats: {
day: 'MMM',
month: 'MMM'
}
}
但这不起作用-相同的“未捕获类型错误:format.replace不是函数”错误:
time: {
parser: timeFormat,
round: 'day',
tooltipFormat: function(tooltipItem, data) {
return 'D MMM';
},
unit: 'month',
displayFormats: {
day: 'MMM',
month: 'MMM'
}
}
是否无法使用tooltipFormat函数,或者我只是做错了?错误似乎来自
moment.js
。你能在这里添加一个片段或者一个小提琴链接来显示问题吗?我很难让小提琴正常工作,但是我刚刚添加了一些代码,这可能会有所帮助。基本上,如果我写tooltipFormat:'D MMM',
而不是使用函数,它可以正常工作,但当然会为所有工具提示显示'D MMM'格式。如果我将函数简化为返回'MMM'代码>,(也包括在编辑中),这也不起作用。官员说时间。tooltipFormat
应该是字符串
,我担心可能是这样。我来看看能不能用这个标签做点什么。谢谢你的帮助!错误似乎来自moment.js
。你能在这里添加一个片段或者一个小提琴链接来显示问题吗?我很难让小提琴正常工作,但是我刚刚添加了一些代码,这可能会有所帮助。基本上,如果我写tooltipFormat:'D MMM',
而不是使用函数,它可以正常工作,但当然会为所有工具提示显示'D MMM'格式。如果我将函数简化为返回'MMM'代码>,(也包括在编辑中),这也不起作用。官员说时间。tooltipFormat
应该是字符串
,我担心可能是这样。我来看看能不能用这个标签做点什么。谢谢你的帮助!