0

我正在创建一个非常简单的数组(我必须将第一行列为标题?)并将其从 views.py 解析为模板......

def index(request):
    array = [['date','a','b'],["2014,3,3", 10, 8], ["2014,8,3", 6, 4]]
    return render_to_response('template/index.html',  {'array': json.dumps(array)})

在我的模板中,我正在做一些 JS 来创建一个谷歌图表,它工作得很好。

var djangoData = {{ array|safe }};
      var data = google.visualization.arrayToDataTable(djangoData);

问题是在我的图表上,日期只是字符串,所以如果我做了多行,就不会考虑实际的日期时间。

如何将列转换为 google new date(yy/mm/dd/hh/mm/ss) 等?

我已经尝试了很多东西,比如 setCell、setValue,但似乎没有任何效果。如果 setCell 有效,我也会尝试像 setColumn 这样的方法。

我的(不工作的)setCell 方法代码是这样的:

  data.setCell(1,0,(data.getCell(1,0)));
  data.setCell(2,0,(data.getCell(2,0)));

试图将“2014,3,3”数组中的给定日期元素更改为可识别的谷歌表日期......

这似乎是一个非常简单的问题,但我正在努力:(

谢谢,

弗雷德

4

1 回答 1

2

需要注意的是,根据链接的问题,无法更改列的数据类型。这就是为什么当我尝试转换和替换时,它不起作用。链接:Google 可视化更改列数据类型

在谷歌文档中可以看到没有设置类型的函数,只有属性/值/标签。但除非我只是错过了它,否则我没有看到它说不可能用一个专栏来做到这一点。

无论如何,我使用了他/她演示的替换列技术,进行了一些更改以使其适用于日期:

   data.insertColumn(0, 'date', data.getColumnLabel(0));
    // copy values from column 1 (old column 0) to column 0, converted to numbers
    for (var i = 0; i < data.getNumberOfRows(); i++) {

        val = data.getValue(i, 1);
        //document.write(new Date(val));

        data.setValue(i, 0, new Date(val));
    }
    // remove column 1 (the old column 0)
    data.removeColumn(1);
于 2017-01-05T22:16:49.883 回答