javascript - 如何用foreach时间制作图表

标签 javascript laravel time charts

我正在尝试用我的数据库时间制作一个图表,但我无法让图表“读取”我的数据。

我用 Laravel 和 ChartJS 尝试了这个。我用这种方式制作其他图表,我的问题只是用日期时间和时间制作图表。

  <script type="text/javascript">
  new Chart(document.getElementById("bar-chart"), {
      type: 'bar',
      data: {
        labels: [
          @foreach ($ambientes as $key => $value)
            '{{ $value->mes }}',
          @endforeach
        ],
        datasets: [
          {
            label: "Tiempo de indisponibilidad",
            backgroundColor: "red",
            data: [
              @foreach ($ambientes as $key => $value)
                '{{ $value->tiempo }}',
              @endforeach
            ]
          }
        ]
      },
      options: {
        scales: {
            yAxes: [{
                type: 'time',
                time: {
                    displayFormats: {
                        quarter: 'h:mm'
                    }
                }
            }]
        },
      }
  });
    </script>

最佳答案

首先声明两个数组用于标签和数据并将值插入数组

/*Declare array*/
@php $label=array(); $data=array(); @endphp
/*push label and values into array*/
@foreach($ambientes as $key => $value) 
    @php
        array_push($label, $value->mes);
        array_push($data, $ot['dayot']);
     @endphp
@endforeach

然后对脚本中的值进行 json_encode

<script type="text/javascript">
new Chart(document.getElementById("bar-chart"), {
    type: 'bar',
    data: {
    labels: [<?php echo json_encode($label);?>],
    datasets: [
      {
        label: "Tiempo de indisponibilidad",
        backgroundColor: "red",
        data: [<?php echo json_encode($data);?>]
      }
    ]
    },
    options: {
    scales: {
        yAxes: [{
            type: 'time',
            time: {
                displayFormats: {
                    quarter: 'h:mm'
                }
            }
        }]
    },
    }
});
</script>

关于javascript - 如何用foreach时间制作图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57632822/

相关文章:

javascript - 序列化/镜像 JavaScript 鼠标/触摸事件

javascript - 使用 HTML5 范围输入操作 d3.js 包布局

javascript - 检测浏览器并且不加载HTML、cshtml cSharp

php - Laravel FileSystem中的模糊错误消息

php - 日期进度条 PHP

java - 刷新文本/JLabel 值

javascript - 这个 limitChars 功能可以改进吗?

php - 将部分API数据存储到数据库

mysql - Laravel db::select() 返回一个字符串结果

php - 将 "1d2h3m"转换为 ["day"=> 1, “小时” => 2 ,"minutes"=>3]