Заполнить chartjs ajax полями даты и времени

#javascript #php #mysql #ajax #chart.js

#javascript #php #mysql #ajax #chart.js

Вопрос:

Я пытаюсь создать диаграмму с chart.js . У меня есть php-код, который возвращает данные даты и времени с помощью вызова ajax. Проблема в том, что он не показывает никаких данных и не показывает ошибок. Я использовал console.log(), чтобы проверить, не случилось ли что-то не так с кодом php, но это кажется правильным.

PHP-КОД

 require_once 'core.php';

$sql = sprintf("SELECT entradas, salida_laborable FROM tiempo where cod_fecha = 60");
$result = $connect->query($sql);
$data = array();
foreach ($result as $row) {
  $data[] = $row;
}

$result->close();
$connect->close();
print json_encode($data);
  

Ajax /Javascript

 $(document).ready(function(){
$.ajax({
     url : "php_action/horas_chart.php",
     type : "GET",
     success : function(data){
     console.log(data);

     var cod_fecha = [];
     var entradas  = [];
 
     for(var i in data) {
        cod_fecha.push(data[i].cod_fecha);
        entradas.push(data[i].entradas);
     }

   var chartdata = {
       labels: name,
         datasets: [
            {
                   label: 'Promedio',
                backgroundColor: '#49e2ff',
                borderColor: '#46d5f1',
                hoverBackgroundColor: '#CCCCCC',
                hoverBorderColor: '#666666',
                    data: entradas
                            }
                        ]
                    };

    var ctx = $("#canvas");

    var LineGraph = new Chart(ctx, {
      type: 'bar',
    });
  },
error : function(data) {
}
});
});

  

Это результат:

Это результат

Спасибо, я был бы признателен за любые советы.

Ответ №1:

Насколько я помню, charjs ожидает объект Date () для ввода даты https://www.chartjs.org/docs/latest/axes/cartesian/time.html
итак, вы можете попробовать

 for(var i=0; i<data.length; i  ) {
  entradas.push(new Date(data[i].entradas));
}