Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chart.js v2-如何在工具提示中设置与数据集相关的日期格式_Javascript_Chart.js - Fatal编程技术网

Javascript Chart.js v2-如何在工具提示中设置与数据集相关的日期格式

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

在Chart.js(v2.7.3)中,我有一个包含多个数据集的折线图。我希望在工具提示中以“MMM”格式显示其中一个数据集的日期(每个月有一个点),并以“d MMM”格式显示所有其他数据集的日期(每个月有不同数量的点)

我尝试使用tooltipFormat函数,如下所示:

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
应该是
字符串
,我担心可能是这样。我来看看能不能用这个标签做点什么。谢谢你的帮助!