Я использую диаграмму Google для отображения некоторых данных из электронной таблицы Google. Это сегмент моего кода.Сортировка столбцов типа даты при использовании класса Chartwrapper
var queryurl = <link to the Google spreadsheet>;
function drawVisualization() {
var query = new google.visualization.Query(queryurl);
// Send the query with a callback function.
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
// Prepare the data
var data = response.getDataTable();
var table = new google.visualization.ChartWrapper({
'chartType': 'Table',
'containerId': 'chart2',
'options': {
'showRowNumber': 'true'
}
});
}
Один из столбцов фактически содержит даты, отформатированные как день/месяц/год, например. 15/10/2013. Однако, когда я пытаюсь отсортировать этот конкретный столбец, нажав на заголовок, сортировка выполняется путем обработки каждой даты в виде строки, так что, например, если три даты - 01/02/1999, 01/03/1999 и 01/09/1997 затем отсортированный заказ (по возрастанию) - 01/02/1999, 01/03/1999 и 01/09/1997 вместо правильного заказа 01/09/1997, 01/02/1999, 01/03/1999.
Мой вопрос: есть ли способ гарантировать правильность сортировки в контексте дат? Нужно ли, например, указать тип данных, содержащихся в каждом столбце (что, конечно, было сделано в исходной электронной таблице Google)?
Заранее благодарен!
На догадке, ваша «дата» на самом деле являются строки, а не объекты Даты. Проверьте содержимое столбца даты, чтобы убедиться, что это так, например: добавьте строку 'console.dir (data.getValue (0, <индекс столбца столбца>));', откройте страницу в Firefox или Chrome и просмотрите консоль разработчика, чтобы узнать, что выводится. Если это строка типа «01/02/1999», вам необходимо преобразовать строки в объекты Date. – asgallant
Это то, что я подозревал, но спасибо за подсказку о том, как его проверить. Таким образом, даты формы 1/1/1997 рассматриваются как строки. Поскольку я импортировал таблицу как отдельный объект, как мне изменить «тип» одного столбца? – Louis
Вам нужно будет использовать DataView для преобразования строк в Dates. Я отправлю ответ с подробностями. – asgallant