29

我正在开发一个预计会显示此图的项目:http: //jsfiddle.net/Kc23N/

当我单击一个点(工具提示)时,我想显示一个可以理解的日期,而不是以毫秒为单位的值。

我认为需要更改这段代码:

tooltip: {
      headerFormat: '<b>{series.name}</b><br>',
      pointFormat: '{point.x} date, {point.y} Kg',                        
}

我该怎么办?任何帮助表示赞赏。

谢谢

4

6 回答 6

59

您可以使用moment.js来格式化值,但 Highcharts 有它自己的日期格式化功能,这对于 Highcharts 来说会更惯用。它可以附加到 highcharts 构造函数中的工具提示选项上,如下所示:

        tooltip: {
            formatter: function() {
                return  '<b>' + this.series.name +'</b><br/>' +
                    Highcharts.dateFormat('%e - %b - %Y',
                                          new Date(this.x))
                + ' date, ' + this.y + ' Kg.';
            }
        }

您可能还想在 xAxis 下添加dateTimeLabelFormats对象以及日期所需的选项。

我用你的代码做了这个例子

于 2013-06-11T01:38:47.607 回答
55

您应该在工具提示中使用 xDateFormat 来自定义格式日期
http://api.highcharts.com/highcharts#tooltip.xDateFormat

sample:
tooltip: {
           xDateFormat: '%Y-%m-%d'
         },
于 2016-04-06T07:16:49.407 回答
20

您可以使用{value:%Y-%m-%d}模板过滤器。

例如:

headerFormat: '<span style="font-size: 10px">{point.key:%Y-%m-%d}</span><br/>'
于 2015-10-19T01:36:26.177 回答
14

您需要使用 tooltip formatter 在工具提示中返回格式化的日期。

这是工具提示格式化程序 API供您参考。

对于格式化日期部分,您可以使用Highcharts.dateFormat()

该格式是PHP 的 strftime函数格式的子集。

您还可以参考PHP's strftime更多日期格式。

我设法将您的工具提示格式化如下。

  tooltip: {
                formatter: function() {
                    return  '<b>' + this.series.name +'</b><br/>' +
                        Highcharts.dateFormat('%e - %b - %Y',
                                              new Date(this.x))
                    + '  <br/>' + this.y + ' Kg.';
                }
            }
于 2013-06-11T10:08:12.057 回答
6

我这样做:

headerFormat: '{point.x:%e %b %H:%M}'

例如

"tooltip": {
            outside: true,
            split: false,
            shared: true,
            useHTML: true,
            headerFormat: '{point.x:%e %b %H:%M}',
            pointFormat: '<p style="font-size:12px;margin:0px;padding-top:1px;padding-bottom:1px;color:{series.color};">{series.name} <strong>{point.y}</strong></p>',
            valueDecimals: 2,
            backgroundColor: 'black',
            borderWidth: 0,
            style: {
                width: '150px',
                padding: '0px'
            },
            shadow: false
        },
于 2020-09-10T19:06:57.467 回答
0

正如 Quy Le 所建议的,内置的 xDateFormat 属性是可行的方法,但它对我不起作用。我终于意识到我的问题在于我将 Date 对象分配给我的 x 值而不是数字(以毫秒为单位的日期)的系列数据。而不是{ x: new Date('2020-01-01'), .. }它需要是{ x: Date.parse('2020-01-01'), .. }。进行此更改后,xDateFormat 成功了。很难确定,因为它不会导致图表出现任何其他问题(即使重新格式化我的 x 轴标签也可以正常工作)。

于 2020-12-04T16:48:14.370 回答