Javascript 使用谷歌时间线图的多个时间线图

Javascript 使用谷歌时间线图的多个时间线图,javascript,google-chrome,charts,Javascript,Google Chrome,Charts,我有一个有多个div的页面来保存时间线图表。 根据相关的公司id,所有部门都有一个特定的id <div id="1"></div> <div id="2"></div> 关于为什么会发生这种情况,你有什么想法吗?为了避免这种错误,请确保你给出的日期和时间是正确的。 在某些情况下,如果新的日期参数不是整数类型(以毫秒或日期字符串为单位),则函数将返回无效的日期,而google timeline将返回该错误 我建议: var colTime = pa

我有一个有多个div的页面来保存时间线图表。 根据相关的公司id,所有部门都有一个特定的id

<div id="1"></div>
<div id="2"></div>

关于为什么会发生这种情况,你有什么想法吗?

为了避免这种错误,请确保你给出的日期和时间是正确的。 在某些情况下,如果新的日期参数不是整数类型(以毫秒或日期字符串为单位),则函数将返回无效的日期,而google timeline将返回该错误

我建议:

var colTime = parseInt(val.req_col_time); /* assuming that val.req_col_time is in milliseconds */
colTime = new Date(colTime);

var delTime = parseInt(val.req_del_time); /* assuming that val.req_del_time is in milliseconds */
delTime = new Date(delTime );

dataTable.addRow([val.vehicle,val.order_id,colTime,delTime),"Status: <br>some more stuff here!!!"]);

当DIV元素不够大,无法显示图表时,我得到了完全相同的错误,在X轴上有日期/时间值


本例中的解决方案是在DIV元素上定义一个最小宽度。

我得到了三个不同的错误,包括'Dygraph.TICK\u PLACEMENT[a]是

未定义`因为谷歌时间线宽度问题

在Ipad Safari上未定义动态图表.TICK_位置[a] 无法在缩小的Chrome窗口上读取未定义的属性“datefield” 无法在上获取未定义或空引用的属性“datefield” 窄窗

我通过设置时间线的最小宽度找到了一个解决方法。对于我的申请来说,最低900英镑似乎足够了

我的代码:

   ...
   var options = {
            timeline: { showRowLabels: false },
            width: getTimelineWith()
        };

   chart.draw(dataTable, options);
}

function getTimelineWith() {
        var minTimelineWidth = 900;

        if (drawPanelWidth > minTimelineWidth) {
            return drawPanelWidth;
        }

        return minTimelineWidth;
    }

设法将错误缩小到从arrayok传递到datatable行的值,更具体地说,是我从mysql传递到datatable的日期值OK我不知道如何将问题标记为已回答,但解决方案是使用date.parse解析mysql中的日期变量。那么Date.parseval.req_col_time,trickHow much是最小值吗?
var colTime = parseInt(val.req_col_time); /* assuming that val.req_col_time is in milliseconds */
colTime = new Date(colTime);

var delTime = parseInt(val.req_del_time); /* assuming that val.req_del_time is in milliseconds */
delTime = new Date(delTime );

dataTable.addRow([val.vehicle,val.order_id,colTime,delTime),"Status: <br>some more stuff here!!!"]);
   ...
   var options = {
            timeline: { showRowLabels: false },
            width: getTimelineWith()
        };

   chart.draw(dataTable, options);
}

function getTimelineWith() {
        var minTimelineWidth = 900;

        if (drawPanelWidth > minTimelineWidth) {
            return drawPanelWidth;
        }

        return minTimelineWidth;
    }