2017-02-20 3 views

Antwort

0

Das Problem ist, dass ich nicht konstante Zeitintervalle haben Sie und ich kann nicht eine „Zeitmaschine“, wie in dem Candle Beispiel.

Die Zeit (X-Wert) Ich habe aus einer Oracle-Abfrage kommt:

$query = "SELECT ptm.IDENTIFICACAO, 
      mtr.SERIAL, 
      TO_CHAR(rtu.DATAHORA, 'yyyy-mm-dd hh24:mi:ss') AS DATAHORA, 

So ist der Datetime-Wert ist eine Zeichenfolge in PHP Datumsformat: Ymd H: i: s, was ich brauche zu konvertieren zu TChart-Werten. Ich weiß nicht, ob ich voll richtig bin, aber es scheint, dass Datetime-Werte sollten als Float-Werte (Unix-Zeitstempel)

So eingegeben werden ich sie bin Umwandlung wie folgt:

while(($row = oci_fetch_array($stmt, OCI_ASSOC)) != false){ 
     $thetime = DateTime::createFromFormat('Y-m-d H:i:s', $row["DATAHORA"]); 


     if($thetime) 
      $tchart->getChart()->getSeries(0)->addXY((float) $thetime->getTimestamp() , $row["ENERTOT"]/1000); 
     } 
     ++$rowCount; 
    } 

Ich hoffe, das helfen kann, jemand anderes.

Mit freundlichen Grüßen.

1

Das Beispiel "CandleChart.php" in der Produktdemo, das mit dem Produkt ausgeliefert wird, verwendet DateTimes auf der horizontalen Achse.
Hier ist eine Variation:

<?php 
     //Includes 
     include "../../../../sources/TChart.php"; 

     $chart1 = new TChart(600,450); 
     $chart1->getChart()->getHeader()->setText("Candle Style"); 
     $chart1->getChart()->getAspect()->setView3D(false); 
     // Clip Series points 
     $chart1->getChart()->getAspect()->setClipPoints(true); 
     $chart1->getChart()->getLegend()->setVisible(false); 

     // Add Candle data using doubles for date values 
     $today = time(); 
     $day = 86400; 
     $hour = 3600; 

     $chart1->getAxes()->getBottom()->setIncrement(DateTimeStep::$ONEMINUTE); 
     $chart1->getAxes()->getBottom()->getLabels()->setDateTimeFormat('d/m/Y H:i:s'); 
     $chart1->getAxes()->getBottom()->getLabels()->setAngle(90); 
     $candle=new Candle($chart1->getChart()); 

     $chart1->setAutoRepaint(false); 
     for ($i=$today;$i<($today+$hour);$i+=60) { 
      $candle->addCandle($i,rand(0,100),rand(0,100),rand(0,100),rand(0,100)); 
     } 
     $chart1->setAutoRepaint(true); 
     $chart1->doInvalidate(); 

     $chart1->render("chart1.png"); 
     $rand=rand(); 
     print '<font face="Verdana" size="2">Candle Chart Style<p>'; 
     print '<img src="chart1.png?rand='.$rand.'">';     
?> 
Verwandte Themen