I'm using GoogleCharts to draw a line chart with a 'datetime' type along one axis. I'd like to format the axis labels so that they display times in a specified timezone instead of the default browser timezone.
From reading the documentation, there is a DateFormat object which can be supplied with a 'timeZone' option, and then called with the appropriate DataTable
and column to format all cells in that column. I've noticed that doing this results in values that are correctly formatted if the DataTable
is drawn as a Table. However, this same formatting does not apply to axis labels on charts such as LineChart
or Bar
.
Here's my code:
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);
Here's the resulting charts:
Note how the table displays correctly formatted times in the relevant cells, whereas the line chart axes display browser time (GMT in this case).
Is there a way of changing the timezone formats of the line chart axis labels? Is there something I might be missing?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…