我是一个Javascript初学者,但上个月我有一个工作的谷歌图表链接到谷歌文档文件,它使用的图表开始日期在当前日期前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>
如有任何意见,我将不胜感激。
大卫。
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
},