2015-02-12 4 views
0

Im, используя диаграммы движения Google, чтобы отобразить некоторые данные из файла csv. Файл выглядит такФормат даты в формате Google

411,(10/4/2014),24,21 
371,(10/5/2014),247,239 
959,(10/6/2014),266,23 
680,(10/7/2014),211,24 

Но каждый раз, когда я пытаюсь получить его на график данных, которые я получаю сообщение об ошибке «Первые и вторые столбцы должны быть юридическое лицо и время.». В каком формате должна находиться дата в файле?

Я изменил идею jlee-tessik и придумал приведенный ниже код, который успешно конвертирует любые dd/mm/yyyy в дату. Благодаря

\t \t \t $.get(csvFile, function(csvString) { 
 
\t \t \t \t var arrayData = $.csv.toArrays(csvString, {onParseValue: $.csv.hooks.castToScalar}); 
 
\t \t \t for(i = 1; i < arrayData.length; ++i) 
 
\t \t \t { 
 
\t \t \t \t arrayData[i][1] = new Date (arrayData[i][1].replace(/\//g, ',')); 
 
\t \t \t } 
 
\t \t \t \t var data = new google.visualization.arrayToDataTable(arrayData);

+0

Почему вы не можете не использовать диаграмму Google? –

ответ

0

Первый столбец должен быть строкой, а вторая должна быть дата, так что не забудьте инициализировать первые две колонки с правильными типами данных:

data.addColumn('string', 'Field1'); 
data.addColumn('date', 'Date'); 

и предполагается, что ваш первый столбец является меткой вы хотите:

data.addRows([ 
    ['411', new Date (2014,10,4), 24, 21], 
    ['371', new Date (2014,10,5), 247, 239], 
    ['959', new Date (2014,10,6), 266, 23], 
    ['680', new Date (2014,10,7), 211, 24] 
]); 

EDIT: Сначала я не понял ваш вопрос. jquery-csv, похоже, не поддерживает синтаксический анализ даты с его основным анализом, но вы можете добавить пользовательский крючок для форматирования ваших данных именно так, как вы хотите. Здесь, в первой строке, я захватываю столбец 2, удаляя круглые скобки и преобразуя его в дату.

var col2date = function(value, state) { 
    if(state.colNum == 2) { 
     return new Date (value.replace(/[{()} ]/g, '')); 
    } 
    return value; 
} 

var dataRows = $.csv.toArrays("411,(10/4/2014),24,21", { onParseValue: col2date }); 
+0

Это не работает, потому что эта «новая дата (dd/mm/yyyy)» жестко закодирована, моя идет из файла csv, где новая команда Date не реконструирована –

+0

Тогда вам, вероятно, понадобится конвертировать ваш csv, входящий в , см. библиотеку jquery-csv и http://stackoverflow.com/questions/14211636/how-to-use-google-chart-with-data-from-a-csv. –

+0

Я уже использую jquery-csv для чтения файла, но google charts не распознает даты с днями и месяцами, поступающими из файла –

Смежные вопросы