2017-02-14 2 views
1

Ich mache ein Diagramm mit GoogleChart. Aber es funktioniert nur in Safari nicht. ich den Fehler:GoogleChart funktioniert nicht nur in Safari

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

Mein Datumscode:

var date = new Date(); 

Dies ist mein Code für die Zeilen:

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'].', 
        ], 
       '; 
      } 
     } 
    ?> 
    ] 
); 

Ich denke hier, dass etwas nicht stimmt mit dem Datum geht.

Ich kann nicht finden, warum es nicht nur in Safari funktioniert.

+1

ich habe keine Möglichkeit, auf Safari zu testen, aber das Datum Konstruktor verwendet _should work_ - einzige, was - die führenden Nullen, die das Format produziert, nicht sehen, warum dies ein Problem verursachen würde, aber wenn Sie es ausschließen können ?? -> 'neues Datum (2017, 01, 07, 00, 00, 00)' - vs. -> '' neues Datum (2017, 1, 7, 0, 0, 0) '' - es ist a stretch_ – WhiteHat

+0

Danke für deine gute Antwort. Ich habe es versucht, aber es funktioniert immer noch nicht nur in Safari. –

Antwort

1

könnten Sie vielleicht versuchen, die Daten laden mit JSON-String-Format

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

dies wahrscheinlich einige heftige Änderungen am Layout des Codes erfordern würde,
aber es kann sich lohnen, wenn es

arbeiten

stattdessen die addRows Verfahren der Verwendung, bauen die json Zeichenfolge zuerst, dann
Crea die te DataTable

siehe folgende Arbeits Schnipsel ...

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>

Verwandte Themen