谷歌图表“无法读取未定义的属性'日期字段'为日期时间

时间:2017-05-11 09:33:51

标签: javascript datetime charts google-visualization

我的谷歌图表库有问题。 Actualy,我试图将Datetime数据显示到时间线图表,所以这是我的小提琴:

google.charts.load('current', { 'packages': ['timeline'] });
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
    var container = document.getElementById("occupancyChart");
    var chart = new google.visualization.Timeline(container);
    var jsonData = {
      "cols": [
        {
          "id": "Sensor_name",
          "type": "string"
        },
        {
          "id": "Start",
          "type": "datetime"
        },
        {
          "id": "End",
          "type": "datetime"
        }
      ],
      "rows": [
        {
          "c": [
            {
              "v": "Capteur"
            },
            {
              "v": "1789-04-29T22:00:00.000Z"
            },
            {
              "v": "1798-05-26T22:00:00.000Z"
            }
          ]
        }
      ]
    };
    
    var dataTable = new google.visualization.DataTable(
        jsonData
    );

    chart.draw(dataTable);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
    <div id="occupancyChart"></div>
</body>

实际上,jsonData不存在,它是一个ajax请求,但它有效,我在网页上获取了数据。

我尝试关注API,因此通过在列中使用datetime类型,我尝试在文档中使用格式:

  • RFC 2822 - 2014年12月6日10:30:00 -0800。
  • ISO 8601 - 2014-12-06T10:30:00-0800。

但是对于ISO 8601,同样的麻烦。有什么建议吗?

编辑:

使用调试器,当我通过日期对象修改数据时,正在进行工作

1 个答案:

答案 0 :(得分:1)

1)从json ...

加载数据表时使用以下格式
"Date(Year, Month, Day, Hours, Minutes, Seconds, Milliseconds)"

e.g。

"Date(2017, 4, 3, 7, 31, 49, 0)"  // <-- 05/03/2017 07:31:49

注意:上面的字符串必须将月份减少一个而不是所有参数都是必需的......

请参阅Dates and Times - Using the Date String Representation ...

请参阅以下工作代码段...

&#13;
&#13;
google.charts.load('current', { 'packages': ['timeline'] });
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
    var container = document.getElementById("occupancyChart");
    var chart = new google.visualization.Timeline(container);
    var jsonData = {
      "cols": [
        {
          "id": "Sensor_name",
          "type": "string"
        },
        {
          "id": "Start",
          "type": "datetime"
        },
        {
          "id": "End",
          "type": "datetime"
        }
      ],
      "rows": [
        {
          "c": [
            {
              "v": "Capteur"
            },
            {
              "v": "Date(2017, 4, 10, 7, 16, 30)"
            },
            {
              "v": "Date(2017, 4, 11, 7, 12, 43)"
            }
          ]
        }
      ]
    };

    var dataTable = new google.visualization.DataTable(
        jsonData
    );

    chart.draw(dataTable);
}
&#13;
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="occupancyChart"></div>
&#13;
&#13;
&#13;