【发布时间】:2016-11-07 04:58:30
【问题描述】:
我正在尝试使用 Google Chart API 创建时间线图表。但是问题是我无法处理特定行的空日期。
如何隐藏开始或结束日期为空的行?
google.charts.load("current", {packages:["timeline"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var container = document.getElementById('timeline');
var chart = new google.visualization.Timeline(container);
google.visualization.events.addListener(chart, 'error', errorHandler);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'Role' });
dataTable.addColumn({ type: 'string', id: 'Name' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([
[
'NTC',
'NTC',
new Date('07/05/2016'),
new Date('07/06/2016'),
],
[
'Briefing Meeting',
'Baseline',
new Date('07/07/2016'),
new Date('07/06/2016'),
],
[
'Concept Design',
'Baseline',
new Date('07/05/2016'),
new Date('07/06/2016'),
],
[
'Concept Design',
'Forecast',
new Date('07/05/2016'),
new Date('07/06/2016'),
],
[
'Concept Design',
'Actual',
new Date('07/05/2016'),
new Date('07/06/2016'),
],
[
'Detail Design',
'Baseline',
new Date('07/05/2016'),
new Date('07/06/2016'),
],
[
'Detail Design',
'Forecast',
new Date('07/05/2016'),
new Date('07/06/2016'),
],
[
'Detail Design',
'Actual',
new Date('07/05/2016'),
new Date(),
],
]);
var colors = [];
var colorMap = {
Baseline: '#425cfb',
Forecast: '#f8ac08',
Actual: '#06af90',
NTC: '#1b9e2e'
}
for (var i = 0; i < dataTable.getNumberOfRows(); i++) {
colors.push(colorMap[dataTable.getValue(i, 1)]);
}
var options = {
colors: colors,
timeline: {
showBarLabels: false,
groupByRowLabel: true,
// rowLabelStyle: {fontName: 'Helvetica', fontSize: 24, color: '#603913'},
barLabelStyle: { fontName: 'Garamond', fontSize: 6 },
},
interpolateNulls: true,
};
}
如果我设置 new Date(0) 会显示无效的日期时间,这里有解决方法吗?
【问题讨论】:
-
Dubz 你能创作一个小提琴吗?
-
这是我创建的小提琴。这是我在此处发布的内容的修订版。 jsfiddle.net/6s65tat2 如您所见,其他行不应显示日期,例如预测和实际,因为它设置为 new Date(),但它返回当前日期,这不是我想要的达到。
-
这是更新的小提琴jsfiddle.net/txr3k2z0
-
如何生成日期?也许一种方法是更改服务器端代码而不是 javascript。
-
日期来自数据库,使用 PHP 获取,然后将值传递给声明为 new Date() 的 javascript。那么问题是如何在日期不可用时显示一行?
标签: javascript charts google-visualization