我正在使用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
這就是我所懷疑的,但是要感謝關於如何驗證它的提示。所以它是1997年1月1日形式的日期被視爲字符串。由於我將表格作爲單個對象導入,因此如何更改單個列的「類型」? – Louis
您必須使用DataView將字符串轉換爲日期。我會用細節發佈一個答案。 – asgallant