Ошибка с zoomStartTime и AnnotatedTimeLine - PullRequest
0 голосов
/ 30 сентября 2011

Я немного новичок в Javascript, но в прошлом месяце у меня была рабочая диаграмма Google, связанная с файлом Google Docs, который использует дату начала для графика за 90 дней до текущей даты.

Сегодня я проверил страницу, и в 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>

Любые идеи будут высоко оценены.

Дэвид.

1 Ответ

1 голос
/ 31 августа 2012

Вызов 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
},
...