Javascript 设置Google图表日期时间轴标签的时区格式
我正在使用谷歌图表沿一个轴绘制一个带有“datetime”类型的折线图。我想格式化轴标签,使其显示指定时区的时间,而不是默认的浏览器时区 通过阅读文档,可以为一个对象提供“时区”选项,然后使用相应的Javascript 设置Google图表日期时间轴标签的时区格式,javascript,timezone,google-visualization,Javascript,Timezone,Google Visualization,我正在使用谷歌图表沿一个轴绘制一个带有“datetime”类型的折线图。我想格式化轴标签,使其显示指定时区的时间,而不是默认的浏览器时区 通过阅读文档,可以为一个对象提供“时区”选项,然后使用相应的DataTable和列调用该对象,以格式化该列中的所有单元格。我注意到,如果将DataTable绘制为表,那么这样做会导致正确格式化的值。但是,这种格式不适用于图表上的轴标签,例如折线图或条形图 这是我的密码: var dataTable = new google.visualization.Data
DataTable
和列调用该对象,以格式化该列中的所有单元格。我注意到,如果将DataTable
绘制为表,那么这样做会导致正确格式化的值。但是,这种格式不适用于图表上的轴标签,例如折线图
或条形图
这是我的密码:
var dataTable = new google.visualization.DataTable();
dataTable.addColumn('datetime', 'Time');
dataTable.addColumn('number', 'Wolves');
dataTable.addRows([
[new Date(2020, 1, 1, 12), 1],
[new Date(2020, 1, 1, 13), 3]
]);
// Create DateFormat with a timezone offset of -4
var dateFormat = new google.visualization.DateFormat({formatType: 'long', timeZone: -4});
// Format the first column
dateFormat.format(dataTable, 0);
dataTable.getFormattedValue(0, 0); // "February 1, 2020 at 8:00:00 AM UTC-4"
var table = new google.visualization.Table(document.getElementById('wolf_table'));
table.draw(dataTable);
var lineChart = new google.visualization.LineChart(document.getElementById('wolf_chart'));
lineChart.draw(dataTable);
以下是结果图表:
请注意,表格如何在相关单元格中显示格式正确的时间,而折线图轴如何显示浏览器时间(本例中为GMT)
是否有办法更改折线图轴标签的时区格式?是否有我可能遗漏的内容?使用
hAxis.ticks
提供轴标签
使用DateFormat
// Set X-Axis Labels
var xTicks = [];
for (var i = 0; i < dataTable.getNumberOfRows(); i++) {
xTicks.push({
v: dataTable.getValue(i, 0),
f: dateFormat.formatValue(dataTable.getValue(i, 0))
});
}
/*** OR ***/
// custom date, not in dataTable
var customDate = new Date(2016, 9, 4, 22, 7, 7);
xTicks.push({
v: customDate,
f: dateFormat.formatValue(customDate)
});
使用要显示的标签构建一个数组
使用对象表示法为每个标签提供值(v:
)和格式化值(f:
)
// Set X-Axis Labels
var xTicks = [];
for (var i = 0; i < dataTable.getNumberOfRows(); i++) {
xTicks.push({
v: dataTable.getValue(i, 0),
f: dataTable.getFormattedValue(i, 0)
});
}
请参阅以下工作片段
google.charts.load('current'{
回调:函数(){
var dataTable=new google.visualization.dataTable();
addColumn('datetime','Time');
dataTable.addColumn('number','wolfs');
dataTable.addRows([
[新日期(2020年1月1日12日)1],
[新日期(2020年1月1日13日)3]
]);
//创建时区偏移量为-4的DateFormat
var dateFormat=new google.visualization.dateFormat({formatType:'long',时区:-4});
//格式化第一列
dateFormat.format(数据表,0);
//设置X轴标签
var xTicks=[];
对于(var i=0;i
我和你的处境完全相同。我最终将数据表转换为本地时区中的同一时间。e、 g.我在UTC-4上午8点将2020年2月1日转换为UTC-8上午8点的2020年2月1日,因此图形呈现正确,但保留了原始数据以供我的应用程序中的其他地方使用。有关其他日期格式选项,请参阅。。。