JPGraph y Periodo de fechas
Cuando queremos generar gráficas, queremos que estas sean en función de periodo de tiempo y lo ideal es que ese periodo se genere una escala automática, es decir, si el periodo es corto la escala debería de estar en horas, minutos o incluso segundos, si la escala es mayor debería ser por días, como también años.
La libreria JPGraph escala las fechas por nosotros pero debemos dejarla para que la procese en formato timestamp, y se hace de la siguiente manera:require_once("jpgraph/jpgraph.php");
require_once("jpgraph/jpgraph_line.php");
require_once("jpgraph/jpgraph_date.php");
$data=array();
$xdata=array();// Generamos un periodo de fecha para convertir
$data[0]="2007-12-22 01:00:00";$data[1]="2007-12-23 01:00:00";$data[2]="2007-12-24 01:00:00";$data[3]="2007-12-25 01:00:00";$data[4]="2007-12-26 01:00:00";$data[5]="2007-12-27 01:00:00";$data[6]="2007-12-28 01:00:00";$data[7]="2007-12-29 01:00:00";$data[8]="2007-12-30 01:00:00";for ($i;$i<count($data);$i++) {// Se debe separar la fecha para luego poder convertirla a timestamplist($ano,$mes,$dia,$hora,$minuto,$segundo,)=split('[-, ,:]',$data[$i]);// La funcion mktime() requiere por cada elemento de la fecha especifica para poder convertirla
}// Luego basta crear la escala de datos
$minimo=min($data);// Teniendo las fechas ya formateadas, ya nos sirve de insumo para la graficaEl resultado se puede ver parecido a este ejemplo que tengo en mi aplicación
$graph->SetMargin(40,40,30,130);
$graph->SetScale('datlin',$minimo,$mayor);
$graph->title->Set("Grafica");
$graph->xaxis->SetLabelAngle(90);
$line = new LinePlot($data,$xdata);
$line->SetFillColor('lightblue@0.5');
$graph->Add($line);
$graph->Stroke();