【问题标题】:Google datatable - converting "date" string into actual new Date() for entire column (setCell??)谷歌数据表 - 将“日期”字符串转换为整个列的实际新日期()(setCell??)
【发布时间】:2017-05-20 12:09:10
【问题描述】:

我正在创建一个非常简单的数组(我必须将第一行列为标题?)并将其从 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”数组中的给定日期元素更改为可识别的谷歌表日期...

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

谢谢,

弗雷德

【问题讨论】:

    标签: arrays datatable date-format calculated-columns google-datatable


    【解决方案1】:

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

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

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

       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);
    

    【讨论】:

      猜你喜欢
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 2016-12-10
      • 2020-04-25
      相关资源
      最近更新 更多