2017-02-14 16 views
1

Я делаю диаграмму с Googlechart. Но это не работает только в Safari. я получаю ошибку:Googlechart не работает только в Safari

a.getTime is not a function. (in 'a.getTime()','a.getTime' is undefined).

Мой код:

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

я не есть способ проверить на сафари, но дата конструктор используется _should work_ - единственная вещь - ведущие нули, которые производит формат, не понимают, почему это может вызвать проблему, но если вы можете это исключить? -> 'new Date (2017, 01, 07, 00, 00, 00)' - vs. -> '' new Date (2017, 1, 7, 0, 0, 0) '' - _it's a stretch_ – WhiteHat

+0

Спасибо за хороший ответ. Я попробовал, но он все еще не работает в Safari. –

ответ

1

вы могли бы, возможно, попробуйте загрузить даты, используя формат строки JSON

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

это, вероятно, потребует некоторых дюжий изменения в макет вашего кода,
, но может быть стоит, если она будет работать


вместо использования метода addRows, построить строку JSON первый,
затем CREA Т. Е. 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>

 Смежные вопросы

  • Нет связанных вопросов^_^