ArrayToDataTable 不接受日期时间类型

ArrayToDataTable not accepting datetime type

我这里有这段代码可以按日期过滤我的面积图,但它不能正常工作,因为 arrayToDataTable 不接受 dateTime 类型。

如有任何帮助,我们将不胜感激。

有人知道如何解决这个问题吗?

这是我的脚本:

        <script type="text/javascript">
    google.load("visualization", "1.1", { packages: ["controls", "corechart"] });
    google.setOnLoadCallback(drawChart);
    function drawChart() {


        $.ajax({
            type: "POST",
            url: "GoogleChart.aspx/GetChartData",
            data: '{}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {
                var data = google.visualization.arrayToDataTable(r.d);
                var rangeFilter = new google.visualization.ControlWrapper({
                   controlType: 'ChartRangeFilter',
                   containerId: 'filter-range',
                 options: {
                     filterColumnIndex: 0,
                   ui: {
                        chartType: 'AreaChart',
                        chartOptions: {
                          chartArea: {
                         width: '100%',
                        left: 36,
                       right: 18
          },
          height: 72
        }
      }
    }
  });
                var chart = new google.visualization.ChartWrapper({
    chartType: 'AreaChart',
    containerId: 'chart_div',
                    options: {
        width: 1800,
      height: 600,
      legend: {
        alignment: 'end',
        position: 'top'
      },
      animation: {
        duration: 500,
        easing: 'in',
        startup: true
      },
      chartArea: {
        height: '100%',
        width: '100%',
        top: 36,
        left: 36,
        right: 18,
        bottom: 36
      }
    }
  });

                  var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard'));
                 dashboard.bind(rangeFilter, chart);
                  dashboard.draw(data);

            },

        });
    }
</script>

为了创建日期时间值,
您将需要手动更改数据中的每一行。

而不是使用 arrayToDataTable...

var data = google.visualization.arrayToDataTable(r.d);

创建空白数据table,
然后使用数据中的列标题创建列,
其余的创建行...

var data = new google.visualization.DataTable();
r.d.forEach(function (row, index) {
  if (index === 0) {
    data.addColumn('date', row[0]);
    data.addColumn('number', row[1]);
  } else {
    data.addRow([new Date(row[0]), row[1]]);
  }
});