Google Chart API - 始终必须为日期创建新的Date()对象?

时间:2012-12-19 11:34:16

标签: javascript google-visualization

在我的应用程序中,我通过Python(通过AJAX调用)从SQL实例返回一些值,格式如下:

[['2012-11-18', 33, 2], ['2012-11-19', 162, 11], ['2012-11-20', 140, 13]]

不幸的是,如果我希望Google Chart API将其识别为日期而不是字符串,我似乎需要在Javascript中使用new Date(x)对象创建。这总是必要的吗?我怎么能以编程方式从Javascript或Python中获得当前输出?任何提示都会有所帮助!

以下不起作用

...
data.addColumn('date', 'Date');
data.addColumn('number', 'Pageviews');
data.addColumn('number', 'Unique Visitors');
data.addRows([['2012-11-18', 33, 2], ['2012-11-19', 162, 11], ['2012-11-20', 140, 13]]); 
...

以下作品:

...
data.addColumn('date', 'Date');
data.addColumn('number', 'Pageviews');
data.addColumn('number', 'Unique Visitors');
data.addRows([[new Date('2012-11-18'), 33, 2], [new Date('2012-11-19'), 162, 11], [new Date('2012-11-20'), 140, 13]]); 
...

1 个答案:

答案 0 :(得分:1)

试试这个:

var dateArray = [['2012-11-18', 33, 2], ['2012-11-19', 162, 11], ['2012-11-20', 140, 13]];
for(var i = 0; i < dateArray.length; i++){
    dateArray[i][0] = new Date(dateArray[i][0]); // Set dateArray[i][0] to a `new Date()` with as value the string in `dateArray[i][0]`;
}
data.addRows(dateArray);

这将在数组中将日期字符串设置为日期对象。