0

私はJavascriptの初心者ですが、先月、現在の日付の90日前のグラフの開始日を使用するGoogleDocsファイルにリンクされたGoogleチャートが機能していました。

今日ページを確認したところ、Chromeでは「オブジェクト#にはメソッド'getTime'がありません」というメッセージが表示され、Firefoxでは「b.zoomStartTime[y]は関数ではありません」というメッセージが表示されます。どちらもグラフの読み込みを停止します。

エラーを解決するためにコードを簡略化しましたが、どこにも到達していません...コードは次のとおりです。

<script type="text/javascript">
    var oldDate = new Date();
    oldDate.setDate(oldDate.getDate() - 90);
</script>       

<script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js">
 {
     "dataSourceUrl": "//docs.google.com/spreadsheet/tq?key=0AkQH6d2CUv_qdDhwd3gtZzdTVFlNX3AwX2xUSUVuclE&transpose=0&headers=-1&range=A1%3AB2436&gid=0&pub=1",
     "options": {
         "zoomStartTime": oldDate,              
         "width": 650,
         "height": 371
     },
     "chartType": "AnnotatedTimeLine",
 }
</script>

どんなアイデアでも大歓迎です。

デビッド。

4

1 に答える 1

1

getDate()呼び出しは、月の日(http://www.w3schools.com/jsref/jsref_obj_date.asp )を返します。これにより、無効な日付が作成され、エラーが発生します。

今とは別の日付を取得するための解決策:

function getDate(y, m, d) {
    var now = new Date();
    return new Date(now.getFullYear()+(y?y:0), now.getMonth()+(m?m:0), now.getDate()+(d?d:0));
}

次のように使用できます。

"options": {
    "zoomStartTime": getDate(0, -90, 0),              
    "width": 650,
    "height": 371
},
于 2012-08-30T23:11:01.953 に答える