2
我正在角度和谷歌图表做一个应用程序,我有一个从GraphQL中提取的数据返回一个数组与日期和两个值,第一行对应于数组中的字段名称:谷歌图表格式字符串值如日期
myArray = [
["Date", "upx", "upn"],
["2017-02-01", 0.031, 2],
["2017-02-02", 0.051, 1],
["2017-02-03", 0.041, 6],
]
获得从graphQL数据后,我具有类似于前面的代码数组的数组,我此数组转换为数据表与谷歌可视化arrayToDataTable:
let data = google.visualization.arrayToDataTable(myArray);
我有结构的文件为每个字符指定模式格式化程序像这个日期栏的T和列位置:
google: {
type: 'LineChart',
options: {
isStacked: true,
hAxis: {
title: 'Date',
type: 'date',
format: 'MMM/dd/yy'
},
vAxis: {
title: 'Absenteeism',
format: 'percent',
gridlines: {
count: 10
},
step: 1,
}
},
formatters: {
date: [
{
columnNum: 0,
pattern: '"MMM/yyyy"
}
],
number: [
{
columnNum: 1,
pattern: '#.##',
fractionDigits: 2
}
]
}
}
所以我通过这个配置功能绘制图表:
<div [chartData]="data" [chartFormatters]="google.formatters" [chartOptions]="google.options" [chartType]="google.type" GoogleChart></div>
现在我想CONVER的字符串日期,但没有按”将不起作用:
for (var formatType in chartFormatters) {
switch (formatType) {
case 'number':
chartFormatters[formatType].forEach(ItemFormatter => {
let formatter = new google.visualization.NumberFormat(ItemFormatter);
formatter.format(data, ItemFormatter.columnNum);
});
break;
case 'date':
chartFormatters[formatType].forEach(ItemFormatter => {
let formatter = new google.visualization.DateFormat(ItemFormatter);
formatter.format(data, ItemFormatter.columnNum);
});
break;
default:
break;
}
}
我怎样才能字符串转换为日期格式在我的第一阵列,我的问题是,我有很多疑问从graphql返回类似的数据使用相同的功能的角度来绘制图表,但日期字段不存在于所有结果中,或者不在所有查询的相同位置。
谢谢@whiteHat,我问题是,该数组来自graphql,我可以改变日期字符串cuz的格式其实我不知道日期字段在哪里,在0或2或3数组中的索引。 – xzegga
我会尝试一种格式化您的答案 – xzegga