我对 Flotr2 相当陌生,我刚刚构建了一些简单的折线图。这很简单,也很酷。但是,我需要将时间戳(月日年加上一天中的时间)作为我的 x 轴。我从我的数据库中获取时间,所以它在 php 代码中,我只是像这样回显数据:
while($stmt11->fetch()){
echo " [" . $date_of_completion . ", " . $score . "]";
echo ",";
$i++;
$total_score += $score;
}
echo "];";
而且我已将 xaxis 的模式设为“时间”,并且尝试了“日期”,但它永远无法正常工作。它一直把所有东西都放在 2001-2002 之间,这是完全错误的,所以我认为它只是不知道如何处理我给它的数据。有没有其他人遇到过这个问题?我已经浏览了他们按时给出的例子,但这对我来说毫无意义。
任何帮助都将不胜感激。谢谢
编辑好的,这里有更多代码。这正是我从 php 中获取数据并将其转换为 fltr2 所需格式的工作。
if(!($stmt11 = $mysqliprivate->prepare("SELECT date_of_completion, score FROM ". $shs . " WHERE id = ? ORDER BY date_of_completion ASC"))){
echo "Prepare Failed: (" . $mysqliprivate->errno . ") " . $mysqliprivate->error;
}
else{
$total_score = 0;
$stmt11->bind_param("s", $id);
$stmt11->execute();
$stmt11->bind_result($date_of_completion, $score);
$time = time();
echo "var dataset = [";
$i = 0;
while($stmt11->fetch()){
$date = date("U", strtotime($date_of_completion));
echo " [" . $date . ", " . $score . "]";
echo ",";
$i++;
}
echo "];";
$stmt11->close();
}
这是我正在运行的 javascript:
graph = Flotr.draw(container, [
{ data : dataset, label : 'Historical Patient Scores', lines:{show:true}, points: {show:true}}
], {
xaxis: {
minorTickFreq: 4,
title : 'Date of Completion',
tickDecimals: 0,
noTicks: 10,
mode : 'time',
timeformat : '%y/%m/%d'
},
yaxis : {
max : 30,
title : 'Score',
tickDecimals:0,
min: 0
},
grid: {
minorVerticalLines: true
},
legend : {
position : 'nw'
},
mouse: {
track: true,
relative:true,
trackDecimals:0,
sensibility: 5
}
});
})(document.getElementById("editor-render-0"));