我有一個谷歌片採取了谷歌的可視化數據表列日期列看起來像這樣:如何包括從電子表格
Date Sales
31/03/2017 1000
30/06/2017 2000
30/09/2017 1500
31/12/2017 2500
31/03/2018 4000
如果我導入此使用.arrayToDataTable在谷歌圖表和設置第0列的類型爲「日期」或「字符串」 - 它不喜歡它,因爲日期只是格式化數字,即43190 = 31/3/2018。所以類型必須是「數字」,然後僅顯示在圖表上的底層數而不是日期
我可以通過每個行值的循環,我已經試圖改變它們與此
function formatDate(date) {
var d = new Date((date - 25569)*86400*1000),
locale = "en-us",
month = d.toLocaleString(locale, { month: "short" });
var formattedDate = d.getDay() + "/" + month + "/" + d.getFullYear();
return formattedDate
}
轉換成一個日期字符串的數量 - 所以用的,比方說,43190的輸入返回31 /三月/ 2018,但我仍然無法改變列類型爲「日期」
我所能輸出的日期作爲字符串,但他們不按時間順序排序,但按字母順序 - 我希望他們按時間順序排列。
有人可以告訴我我要去哪裏嗎?
編輯:
如果我改變功能
function formatDate(date) {
var d = new Date((date - 25569)*86400*1000)
return d
}
現在這樣設置列值,以完整的日期對象
,但我得到一個錯誤說「值太陽6月30日2013 01:00:00 GMT + 0100(GMT夏令時)與列索引0中的類型編號不匹配「
現在,這必須引用數據表列零,原始表格,是日期編號。我試着添加:
data.setColumnProperty(0, 'type' , 'date')
但似乎得到了同樣的錯誤。
也許我不會改變代碼中正確點的類型。
澄清:我從谷歌工作表中獲取範圍的原始值,然後使用.arrayToDataTable將該範圍轉換爲數據表。所以,我不知道我可以做的數據表,因此單獨與嘗試的角度定義列類型:
data.setColumnProperty(0, 'type' , 'date')
是的。我已經更新了這個問題來反映這一點。仍然沒有打球...... – MrPea
哦,我差不多在那裏....我加入到數組源中{label:'Period',type:'date'},現在我已經知道了日期。所以我會嘗試在過濾器和軸中格式化它們 – MrPea
您正在使用.arrayToDataTable轉換爲數據表。在我的例子中,我使用新的google.visualization.DataTable()創建了一個dataTable;然後添加具有類型的列和行。另外我無法找到文檔中的函數setColumnProperty。你在創建什麼類型的圖表? – Mike