Googlechart不在Safari中工作

时间:2017-02-14 09:35:08

标签: javascript php jquery safari google-chartwrapper

我用Googlechart制作一张图表。但它仅在Safari中不起作用。 我收到错误:

  

a.getTime不是一个函数。 (在'a.getTime()'中,'a.getTime'是   未定义)。

我的日期代码:

var date = new Date();

这是我的行代码:

data.addRows([
    <?php
        $now = date();
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -7 Day")).'), 80,       8,      96,     ,   100,    ,   , , ,   38, , ,],';
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -6 Day")).'), ,         12,     ,       ,   102,    ,       , , ,   ,   , ,],';
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -5 Day")).'), 100,  ,       ,   ,   ,   ,       ,       , , 36  ,   , ,],';
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -4 Day")).'), ,         ,       ,       ,   ,       ,       , , ,   36, , ,],';
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -3 Day")).'), ,         18,     93,     ,   ,       ,       , , ,   ,   , ,],';
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -2 Day")).'), 120,  ,       ,       ,   ,       ,       , , ,   ,   , ,],';
        echo '[new Date('.date("Y, m, d, H, i, s", strtotime("$now -1 month -1 Day")).'), 85,       14,     98,     ,   54,     ,   , , ,   ,   , ,],';
        $query = "SELECT * FROM `test` ORDER BY date ASC";
        if ($result = $mysqli->query($query)) {
            while ($arr = $result->fetch_assoc()) {
                $date = $arr['date'];
                echo '
                    [
                        new Date('.date("Y, m, d, H, i, s", strtotime("$date -1 month")).'),
                        '.$arr['test1'].',
                        '.$arr['test2'].',
                        '.$arr['test3'].', 
                        '.$arr['test4'].',  
                        '.$arr['test5'].',  
                        '.$arr['test7'].',      
                        '.$arr['test8'].', 
                        '.$arr['test9'].',  
                        '.$arr['test10'].', 
                        '.$arr['test11'].', 
                        '.$arr['test12'].', 
                        '.$arr['test13'].',
                    ],
                ';
            }
        }
    ?>
    ]
);

我认为这与日期有关。

我无法找到为什么它只能在Safari中使用。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用json字符串格式

加载日期

"Date(2017, 1, 13, 0, 0, 0)"

这可能需要对代码的布局进行一些重大改动,
但是如果可以的话可能是值得的

而不是使用addRows方法,首先构建json字符串,
然后创建DataTable

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

google.charts.load('current', {
  callback: function () {
    var jsonData = '{"cols": [{"label": "Date", "type": "date"}, {"label": "Value", "type": "number"}], "rows": [{"c":[{"v": "Date(2017, 1, 13, 0, 0, 0)"}, {"v": 1}]}, {"c":[{"v": "Date(2017, 1, 14, 0, 0, 0)"}, {"v": 2}]}]}';

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

    var table = new google.visualization.ChartWrapper({
      chartType: 'Table',
      containerId: 'chart_div',
      dataTable: data
    });
    table.draw();
  },
  packages: ['table']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>