JSON経由でロードされたデータから日付を表示するためにHighchartsのxAxisを取得できないようです。また、データポイントにカーソルを合わせると、ラベルに「無効な日付」と表示されます。
データの生成に使用されるPHPコードは次のとおりです。
function fetchLineChart() {
$fetchData = $this->db->query("SELECT download, upload, date FROM speed_entries ORDER BY date DESC");
while ($data = $fetchData->fetch()) {
$date = date("Y, m, d", strtotime($data['date']));
$downloadData[] = array('Date.UTC(' . $date . ')', (float)$data['download']);
$uploadData[] = array('Date.UTC(' . $date . ')', (float)$data['upload']);
}
$result = array('download' => $downloadData, 'upload' => $uploadData);
echo json_encode($result);
}
そしてこれがチャートのjQueryです
$(document).ready(function() {
var options = {
chart: {
renderTo: 'lineChart',
type: 'line'
},
title: {
text: 'Download / Upload Results'
},
subtitle: {
text: 'Source: Speedtest.net'
},
yAxis: {
title: {
text: 'Speed'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
xAxis: {
type: 'datetime'
},
series: [{
name: 'Download',
lineWidth: 2,
marker: {
radius: 2
},
data: []
}, {
name: 'Upload',
data: []
}]
};
$.getJSON('class.speed.php?mode=lineChart', null, function(json) {
var downloads = json.download;
var uploads = json.upload;
options.series[0].data = downloads;
options.series[1].data = uploads;
chart = new Highcharts.Chart(options);
});
});
他のすべてが機能し、データ行が正しく表示されます。日付を機能させる方法を理解することはできません。
ありがとう