我正在开发一个预计会显示此图表的项目:http://jsfiddle.net/Kc23N/
当我点击一个点(工具提示)时,我想显示一个可以理解的日期,而不是以毫秒为单位的值。
我认为需要改变这段代码:
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: '{point.x} date, {point.y} Kg',
}
我该怎么办?任何帮助表示赞赏。
由于
答案 0 :(得分:51)
您可以使用moment.js来获取格式化的值,但Highcharts拥有自己的日期格式化功能,这对于Highcharts更为惯用。它可以附加到highcharts构造函数中的tooltip选项中,如下所示:
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 对象以及日期所需的选项。
答案 1 :(得分:45)
您应该在工具提示中使用xDateFormat来自定义格式日期
http://api.highcharts.com/highcharts#tooltip.xDateFormat
sample:
tooltip: {
xDateFormat: '%Y-%m-%d'
},
答案 2 :(得分:13)
您可以使用{value:%Y-%m-%d}
模板过滤器。
举个例子:
headerFormat: '<span style="font-size: 10px">{point.key:%Y-%m-%d}</span><br/>'
答案 3 :(得分:11)
您需要使用工具提示格式化工具提示返回格式化日期。
以下是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.';
}
}
答案 4 :(得分:1)
我这样做:
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
},
答案 5 :(得分:0)
正如Quy Le所建议的那样,内置的xDateFormat属性是必经之路,但它对我不起作用。最终,我意识到我的问题出在系列数据中,其中我已将Date对象分配给了x值,而不是数字(日期以毫秒为单位)。它必须是{ x: new Date('2020-01-01'), .. }
而不是{ x: Date.parse('2020-01-01'), .. }
。进行此更改后,xDateFormat完成了技巧。很难确定下来,因为它不会导致图表出现任何其他问题(即使重新格式化我的x轴标签也可以正常工作)。