【问题标题】:Populate chartjs ajax with datetime fields使用日期时间字段填充 chartjs ajax
【发布时间】:2020-10-01 16:04:58
【问题描述】:

我正在尝试使用 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) {
}
});
});

这是结果:

谢谢,如果有任何建议,我将不胜感激。

【问题讨论】:

    标签: javascript php mysql ajax chart.js


    【解决方案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));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多