何らかのズーム(マウスドラッグ、範囲セレクター、日付入力)の後、ポイントクリックイベントから返される日時は通常正しくありません。面グラフを使用しているときにこの問題はまだ見つかりませんでした。棒グラフと縦棒グラフの両方を使用して問題を見つけました。
再作成するには:フィドルを実行し、マウスを使用していくつかの列をズームし、データポイントをクリックします。アラートには、返された日時が表示されます。ツールチップとは異なることに注意してください(これは正しいです)。
同じデータポイントであっても、通常は最初のクリック後に失敗します。
ところで、useUTCの設定は重要ではありません。
フィドル: http: //jsfiddle.net/jrEDT/
完全性のためのコード:
$(function() {
var seriesOptions = [],
yAxisOptions = [],
seriesCounter = 0,
names = ['MSFT'],
colors = Highcharts.getOptions().colors;
$.each(names, function(i, name) {
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename='+ name.toLowerCase() +'-c.json&callback=?', function(data) {
seriesOptions[i] = {
name: name,
data: data,
type: 'column'
};
// As we're loading the data asynchronously, we don't know what order it will arrive. So
// we keep a counter and create the chart when all the data is loaded.
seriesCounter++;
if (seriesCounter == names.length) {
createChart();
}
});
});
// create the chart when all data is loaded
function createChart() {
Highcharts.setOptions({
global: {
useUTC: false // datetime reflects time on db (ie, local) rather than GMT
}
});
chart = new Highcharts.StockChart({
chart: {
renderTo: 'container',
zoomType: 'x'
},
exporting: {
enabled: false
},
rangeSelector: {
selected: 4
},
yAxis: {
plotLines: [{
value: 0,
width: 2,
color: 'silver'
}],
offset: 25
},
plotOptions: {
series: {
cursor: 'pointer',
allowPointSelect: true,
point: {
events: {
click: function() {
var series = this.series.name;
var utc = this.x;
var d = Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x);
alert(d);
}
}
}
}
},
tooltip: {
formatter:function(a,b,c){
var d = Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x);
return d;
},
enable:true
},
series: seriesOptions
});
}
});
ありがとう!